From 636ffd01ff6a9b25280ecb8e1a39dd381fd48a6f Mon Sep 17 00:00:00 2001 From: Khalil Claybon Date: Tue, 16 Jan 2018 03:22:59 -0500 Subject: [PATCH] check if active cred before deleting so that numOfPendingCreds can be reduced --- build/contracts/AuthorizedIssuer.json | 10 +- build/contracts/BFUtils.json | 4 +- build/contracts/BadgeForceToken.json | 224 +-- build/contracts/BadgeLibrary.json | 252 ++-- build/contracts/BadgeManager.json | 18 +- build/contracts/BasicToken.json | 268 ++-- build/contracts/BurnableToken.json | 180 +-- build/contracts/DetailedERC20.json | 116 +- build/contracts/ERC20.json | 136 +- build/contracts/ERC20Basic.json | 88 +- build/contracts/Holder.json | 1781 +++++++++++++---------- build/contracts/Issuer.json | 626 ++++---- build/contracts/Migrations.json | 166 +-- build/contracts/SafeMath.json | 302 ++-- build/contracts/StandardToken.json | 748 +++++----- build/contracts/TransactionManager.json | 604 ++++---- build/contracts/Verifier.json | 476 +++--- contracts/Holder.sol | 11 +- 18 files changed, 3152 insertions(+), 2858 deletions(-) diff --git a/build/contracts/AuthorizedIssuer.json b/build/contracts/AuthorizedIssuer.json index 56be1ef..de04fc0 100644 --- a/build/contracts/AuthorizedIssuer.json +++ b/build/contracts/AuthorizedIssuer.json @@ -970,7 +970,7 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 2482, + "referencedDeclaration": 2505, "type": "function (bool) pure", "value": "require" }, @@ -1266,7 +1266,7 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 2482, + "referencedDeclaration": 2505, "type": "function (bool) pure", "value": "require" }, @@ -1449,7 +1449,7 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 2479, + "referencedDeclaration": 2502, "type": "msg", "value": "msg" }, @@ -1926,7 +1926,7 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 2479, + "referencedDeclaration": 2502, "type": "msg", "value": "msg" }, @@ -2526,5 +2526,5 @@ }, "networks": {}, "schemaVersion": "1.0.1", - "updatedAt": "2018-01-14T11:06:54.635Z" + "updatedAt": "2018-01-16T07:16:25.767Z" } \ No newline at end of file diff --git a/build/contracts/BFUtils.json b/build/contracts/BFUtils.json index 3eea384..d854309 100644 --- a/build/contracts/BFUtils.json +++ b/build/contracts/BFUtils.json @@ -353,7 +353,7 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 2473, + "referencedDeclaration": 2496, "type": "function () pure returns (bytes32)", "value": "keccak256" }, @@ -481,5 +481,5 @@ }, "networks": {}, "schemaVersion": "1.0.1", - "updatedAt": "2018-01-14T11:06:54.636Z" + "updatedAt": "2018-01-16T07:16:25.767Z" } \ No newline at end of file diff --git a/build/contracts/BadgeForceToken.json b/build/contracts/BadgeForceToken.json index 24c41e4..64a6ac3 100644 --- a/build/contracts/BadgeForceToken.json +++ b/build/contracts/BadgeForceToken.json @@ -353,7 +353,7 @@ "absolutePath": "BadgeForceToken/contracts/BadgeForceToken.sol", "exportedSymbols": { "BadgeForceToken": [ - 1797 + 1820 ] } }, @@ -367,94 +367,94 @@ ".18" ] }, - "id": 1731, + "id": 1754, "name": "PragmaDirective", "src": "0:24:8" }, { "attributes": { - "SourceUnit": 2468, + "SourceUnit": 2491, "absolutePath": "zeppelin-solidity/contracts/token/StandardToken.sol", "file": "zeppelin-solidity/contracts/token/StandardToken.sol", - "scope": 1798, + "scope": 1821, "symbolAliases": [ null ], "unitAlias": "" }, - "id": 1732, + "id": 1755, "name": "ImportDirective", "src": "26:61:8" }, { "attributes": { - "SourceUnit": 2150, + "SourceUnit": 2173, "absolutePath": "zeppelin-solidity/contracts/token/DetailedERC20.sol", "file": "zeppelin-solidity/contracts/token/DetailedERC20.sol", - "scope": 1798, + "scope": 1821, "symbolAliases": [ null ], "unitAlias": "" }, - "id": 1733, + "id": 1756, "name": "ImportDirective", "src": "88:61:8" }, { "attributes": { - "SourceUnit": 2116, + "SourceUnit": 2139, "absolutePath": "zeppelin-solidity/contracts/token/BurnableToken.sol", "file": "zeppelin-solidity/contracts/token/BurnableToken.sol", - "scope": 1798, + "scope": 1821, "symbolAliases": [ null ], "unitAlias": "" }, - "id": 1734, + "id": 1757, "name": "ImportDirective", "src": "150:61:8" }, { "attributes": { - "SourceUnit": 1975, + "SourceUnit": 1998, "absolutePath": "zeppelin-solidity/contracts/math/SafeMath.sol", "file": "zeppelin-solidity/contracts/math/SafeMath.sol", - "scope": 1798, + "scope": 1821, "symbolAliases": [ null ], "unitAlias": "" }, - "id": 1735, + "id": 1758, "name": "ImportDirective", "src": "212:55:8" }, { "attributes": { "contractDependencies": [ - 2060, - 2115, - 2149, - 2192, - 2221, - 2467 + 2083, + 2138, + 2172, + 2215, + 2244, + 2490 ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, "linearizedBaseContracts": [ - 1797, - 2115, - 2149, - 2467, - 2060, - 2192, - 2221 + 1820, + 2138, + 2172, + 2490, + 2083, + 2215, + 2244 ], "name": "BadgeForceToken", - "scope": 1798 + "scope": 1821 }, "children": [ { @@ -468,15 +468,15 @@ "attributes": { "contractScope": null, "name": "StandardToken", - "referencedDeclaration": 2467, + "referencedDeclaration": 2490, "type": "contract StandardToken" }, - "id": 1736, + "id": 1759, "name": "UserDefinedTypeName", "src": "297:13:8" } ], - "id": 1737, + "id": 1760, "name": "InheritanceSpecifier", "src": "297:13:8" }, @@ -491,15 +491,15 @@ "attributes": { "contractScope": null, "name": "DetailedERC20", - "referencedDeclaration": 2149, + "referencedDeclaration": 2172, "type": "contract DetailedERC20" }, - "id": 1738, + "id": 1761, "name": "UserDefinedTypeName", "src": "312:13:8" } ], - "id": 1739, + "id": 1762, "name": "InheritanceSpecifier", "src": "312:13:8" }, @@ -514,15 +514,15 @@ "attributes": { "contractScope": null, "name": "BurnableToken", - "referencedDeclaration": 2115, + "referencedDeclaration": 2138, "type": "contract BurnableToken" }, - "id": 1740, + "id": 1763, "name": "UserDefinedTypeName", "src": "327:13:8" } ], - "id": 1741, + "id": 1764, "name": "InheritanceSpecifier", "src": "327:13:8" }, @@ -530,7 +530,7 @@ "attributes": { "constant": true, "name": "INITIAL_SUPPLY", - "scope": 1797, + "scope": 1820, "stateVariable": true, "storageLocation": "default", "type": "uint256", @@ -542,7 +542,7 @@ "name": "uint256", "type": "uint256" }, - "id": 1742, + "id": 1765, "name": "ElementaryTypeName", "src": "352:7:8" }, @@ -589,7 +589,7 @@ "type": "int_const 1", "value": "1" }, - "id": 1743, + "id": 1766, "name": "Literal", "src": "393:1:8" }, @@ -632,7 +632,7 @@ "type": "int_const 10", "value": "10" }, - "id": 1744, + "id": 1767, "name": "Literal", "src": "396:2:8" }, @@ -649,22 +649,22 @@ "type": "int_const 9", "value": "9" }, - "id": 1745, + "id": 1768, "name": "Literal", "src": "400:1:8" } ], - "id": 1746, + "id": 1769, "name": "BinaryOperation", "src": "396:5:8" } ], - "id": 1747, + "id": 1770, "name": "TupleExpression", "src": "395:7:8" } ], - "id": 1748, + "id": 1771, "name": "BinaryOperation", "src": "393:9:8" }, @@ -707,7 +707,7 @@ "type": "int_const 10", "value": "10" }, - "id": 1749, + "id": 1772, "name": "Literal", "src": "404:2:8" }, @@ -724,27 +724,27 @@ "type": "int_const 18", "value": "18" }, - "id": 1750, + "id": 1773, "name": "Literal", "src": "408:2:8" } ], - "id": 1751, + "id": 1774, "name": "BinaryOperation", "src": "404:6:8" } ], - "id": 1752, + "id": 1775, "name": "TupleExpression", "src": "403:8:8" } ], - "id": 1753, + "id": 1776, "name": "BinaryOperation", "src": "393:18:8" } ], - "id": 1754, + "id": 1777, "name": "VariableDeclaration", "src": "352:59:8" }, @@ -752,7 +752,7 @@ "attributes": { "constant": false, "name": "issueBurnRate", - "scope": 1797, + "scope": 1820, "stateVariable": true, "storageLocation": "default", "type": "uint256", @@ -765,12 +765,12 @@ "name": "uint256", "type": "uint256" }, - "id": 1755, + "id": 1778, "name": "ElementaryTypeName", "src": "461:7:8" } ], - "id": 1756, + "id": 1779, "name": "VariableDeclaration", "src": "461:28:8" }, @@ -781,7 +781,7 @@ "isConstructor": true, "name": "BadgeForceToken", "payable": false, - "scope": 1797, + "scope": 1820, "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" @@ -794,7 +794,7 @@ ] }, "children": [], - "id": 1757, + "id": 1780, "name": "ParameterList", "src": "520:2:8" }, @@ -805,7 +805,7 @@ ] }, "children": [], - "id": 1763, + "id": 1786, "name": "ParameterList", "src": "567:0:8" }, @@ -817,11 +817,11 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 2149, + "referencedDeclaration": 2172, "type": "type(contract DetailedERC20)", "value": "DetailedERC20" }, - "id": 1758, + "id": 1781, "name": "Identifier", "src": "523:13:8" }, @@ -838,7 +838,7 @@ "type": "literal_string \"BadgeForceToken\"", "value": "BadgeForceToken" }, - "id": 1759, + "id": 1782, "name": "Literal", "src": "537:17:8" }, @@ -855,7 +855,7 @@ "type": "literal_string \"BFT\"", "value": "BFT" }, - "id": 1760, + "id": 1783, "name": "Literal", "src": "556:5:8" }, @@ -872,12 +872,12 @@ "type": "int_const 18", "value": "18" }, - "id": 1761, + "id": 1784, "name": "Literal", "src": "563:2:8" } ], - "id": 1762, + "id": 1785, "name": "ModifierInvocation", "src": "523:43:8" }, @@ -912,11 +912,11 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1987, + "referencedDeclaration": 2010, "type": "mapping(address => uint256)", "value": "balances" }, - "id": 1764, + "id": 1787, "name": "Identifier", "src": "577:8:8" }, @@ -938,21 +938,21 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 2479, + "referencedDeclaration": 2502, "type": "msg", "value": "msg" }, - "id": 1765, + "id": 1788, "name": "Identifier", "src": "586:3:8" } ], - "id": 1766, + "id": 1789, "name": "MemberAccess", "src": "586:10:8" } ], - "id": 1767, + "id": 1790, "name": "IndexAccess", "src": "577:20:8" }, @@ -962,21 +962,21 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1754, + "referencedDeclaration": 1777, "type": "uint256", "value": "INITIAL_SUPPLY" }, - "id": 1768, + "id": 1791, "name": "Identifier", "src": "600:14:8" } ], - "id": 1769, + "id": 1792, "name": "Assignment", "src": "577:37:8" } ], - "id": 1770, + "id": 1793, "name": "ExpressionStatement", "src": "577:37:8" }, @@ -999,11 +999,11 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 2196, + "referencedDeclaration": 2219, "type": "uint256", "value": "totalSupply" }, - "id": 1771, + "id": 1794, "name": "Identifier", "src": "625:11:8" }, @@ -1013,21 +1013,21 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1754, + "referencedDeclaration": 1777, "type": "uint256", "value": "INITIAL_SUPPLY" }, - "id": 1772, + "id": 1795, "name": "Identifier", "src": "639:14:8" } ], - "id": 1773, + "id": 1796, "name": "Assignment", "src": "625:28:8" } ], - "id": 1774, + "id": 1797, "name": "ExpressionStatement", "src": "625:28:8" }, @@ -1050,11 +1050,11 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1756, + "referencedDeclaration": 1779, "type": "uint256", "value": "issueBurnRate" }, - "id": 1775, + "id": 1798, "name": "Identifier", "src": "663:13:8" }, @@ -1071,27 +1071,27 @@ "type": "int_const 100000", "value": "100000" }, - "id": 1776, + "id": 1799, "name": "Literal", "src": "679:6:8" } ], - "id": 1777, + "id": 1800, "name": "Assignment", "src": "663:22:8" } ], - "id": 1778, + "id": 1801, "name": "ExpressionStatement", "src": "663:22:8" } ], - "id": 1779, + "id": 1802, "name": "Block", "src": "567:128:8" } ], - "id": 1780, + "id": 1803, "name": "FunctionDefinition", "src": "496:199:8" }, @@ -1105,7 +1105,7 @@ ], "name": "burnForIssue", "payable": false, - "scope": 1797, + "scope": 1820, "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" @@ -1118,7 +1118,7 @@ ] }, "children": [], - "id": 1781, + "id": 1804, "name": "ParameterList", "src": "722:2:8" }, @@ -1128,7 +1128,7 @@ "attributes": { "constant": false, "name": "success", - "scope": 1796, + "scope": 1819, "stateVariable": false, "storageLocation": "default", "type": "bool", @@ -1141,17 +1141,17 @@ "name": "bool", "type": "bool" }, - "id": 1782, + "id": 1805, "name": "ElementaryTypeName", "src": "741:4:8" } ], - "id": 1783, + "id": 1806, "name": "VariableDeclaration", "src": "741:12:8" } ], - "id": 1784, + "id": 1807, "name": "ParameterList", "src": "740:14:8" }, @@ -1185,11 +1185,11 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 2114, + "referencedDeclaration": 2137, "type": "function (uint256)", "value": "burn" }, - "id": 1785, + "id": 1808, "name": "Identifier", "src": "765:4:8" }, @@ -1225,7 +1225,7 @@ "isPure": false, "lValueRequested": false, "member_name": "div", - "referencedDeclaration": 1929, + "referencedDeclaration": 1952, "type": "function (uint256,uint256) pure returns (uint256)" }, "children": [ @@ -1235,16 +1235,16 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1974, + "referencedDeclaration": 1997, "type": "type(library SafeMath)", "value": "SafeMath" }, - "id": 1786, + "id": 1809, "name": "Identifier", "src": "770:8:8" } ], - "id": 1787, + "id": 1810, "name": "MemberAccess", "src": "770:12:8" }, @@ -1261,7 +1261,7 @@ "type": "int_const 1", "value": "1" }, - "id": 1788, + "id": 1811, "name": "Literal", "src": "783:1:8" }, @@ -1271,32 +1271,32 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1756, + "referencedDeclaration": 1779, "type": "uint256", "value": "issueBurnRate" }, - "id": 1789, + "id": 1812, "name": "Identifier", "src": "786:13:8" } ], - "id": 1790, + "id": 1813, "name": "FunctionCall", "src": "770:30:8" } ], - "id": 1791, + "id": 1814, "name": "FunctionCall", "src": "765:36:8" } ], - "id": 1792, + "id": 1815, "name": "ExpressionStatement", "src": "765:36:8" }, { "attributes": { - "functionReturnParameters": 1784 + "functionReturnParameters": 1807 }, "children": [ { @@ -1312,32 +1312,32 @@ "type": "bool", "value": "true" }, - "id": 1793, + "id": 1816, "name": "Literal", "src": "818:4:8" } ], - "id": 1794, + "id": 1817, "name": "Return", "src": "811:11:8" } ], - "id": 1795, + "id": 1818, "name": "Block", "src": "755:74:8" } ], - "id": 1796, + "id": 1819, "name": "FunctionDefinition", "src": "701:128:8" } ], - "id": 1797, + "id": 1820, "name": "ContractDefinition", "src": "269:562:8" } ], - "id": 1798, + "id": 1821, "name": "SourceUnit", "src": "0:831:8" }, @@ -1347,5 +1347,5 @@ }, "networks": {}, "schemaVersion": "1.0.1", - "updatedAt": "2018-01-14T11:06:54.644Z" + "updatedAt": "2018-01-16T07:16:25.774Z" } \ No newline at end of file diff --git a/build/contracts/BadgeLibrary.json b/build/contracts/BadgeLibrary.json index a9f1c59..ad7cbc5 100644 --- a/build/contracts/BadgeLibrary.json +++ b/build/contracts/BadgeLibrary.json @@ -94,7 +94,7 @@ "absolutePath": "BadgeLibrary/contracts/BadgeLibrary.sol", "exportedSymbols": { "BadgeLibrary": [ - 1876 + 1899 ] } }, @@ -108,7 +108,7 @@ ".17" ] }, - "id": 1799, + "id": 1822, "name": "PragmaDirective", "src": "0:24:9" }, @@ -124,17 +124,17 @@ "documentation": null, "fullyImplemented": true, "linearizedBaseContracts": [ - 1876 + 1899 ], "name": "BadgeLibrary", - "scope": 1877 + "scope": 1900 }, "children": [ { "attributes": { "canonicalName": "BadgeLibrary.Badge", "name": "Badge", - "scope": 1876, + "scope": 1899, "visibility": "public" }, "children": [ @@ -142,7 +142,7 @@ "attributes": { "constant": false, "name": "issuer", - "scope": 1810, + "scope": 1833, "stateVariable": false, "storageLocation": "default", "type": "address", @@ -155,12 +155,12 @@ "name": "address", "type": "address" }, - "id": 1800, + "id": 1823, "name": "ElementaryTypeName", "src": "142:7:9" } ], - "id": 1801, + "id": 1824, "name": "VariableDeclaration", "src": "142:14:9" }, @@ -168,7 +168,7 @@ "attributes": { "constant": false, "name": "description", - "scope": 1810, + "scope": 1833, "stateVariable": false, "storageLocation": "default", "type": "string storage pointer", @@ -181,12 +181,12 @@ "name": "string", "type": "string storage pointer" }, - "id": 1802, + "id": 1825, "name": "ElementaryTypeName", "src": "166:6:9" } ], - "id": 1803, + "id": 1826, "name": "VariableDeclaration", "src": "166:18:9" }, @@ -194,7 +194,7 @@ "attributes": { "constant": false, "name": "name", - "scope": 1810, + "scope": 1833, "stateVariable": false, "storageLocation": "default", "type": "string storage pointer", @@ -207,12 +207,12 @@ "name": "string", "type": "string storage pointer" }, - "id": 1804, + "id": 1827, "name": "ElementaryTypeName", "src": "194:6:9" } ], - "id": 1805, + "id": 1828, "name": "VariableDeclaration", "src": "194:11:9" }, @@ -220,7 +220,7 @@ "attributes": { "constant": false, "name": "image", - "scope": 1810, + "scope": 1833, "stateVariable": false, "storageLocation": "default", "type": "string storage pointer", @@ -233,12 +233,12 @@ "name": "string", "type": "string storage pointer" }, - "id": 1806, + "id": 1829, "name": "ElementaryTypeName", "src": "215:6:9" } ], - "id": 1807, + "id": 1830, "name": "VariableDeclaration", "src": "215:12:9" }, @@ -246,7 +246,7 @@ "attributes": { "constant": false, "name": "version", - "scope": 1810, + "scope": 1833, "stateVariable": false, "storageLocation": "default", "type": "string storage pointer", @@ -259,17 +259,17 @@ "name": "string", "type": "string storage pointer" }, - "id": 1808, + "id": 1831, "name": "ElementaryTypeName", "src": "237:6:9" } ], - "id": 1809, + "id": 1832, "name": "VariableDeclaration", "src": "237:14:9" } ], - "id": 1810, + "id": 1833, "name": "StructDefinition", "src": "119:140:9" }, @@ -277,7 +277,7 @@ "attributes": { "canonicalName": "BadgeLibrary.Credential", "name": "Credential", - "scope": 1876, + "scope": 1899, "visibility": "public" }, "children": [ @@ -285,7 +285,7 @@ "attributes": { "constant": false, "name": "badge", - "scope": 1821, + "scope": 1844, "stateVariable": false, "storageLocation": "default", "type": "struct BadgeLibrary.Badge storage pointer", @@ -297,15 +297,15 @@ "attributes": { "contractScope": null, "name": "Badge", - "referencedDeclaration": 1810, + "referencedDeclaration": 1833, "type": "struct BadgeLibrary.Badge storage pointer" }, - "id": 1811, + "id": 1834, "name": "UserDefinedTypeName", "src": "352:5:9" } ], - "id": 1812, + "id": 1835, "name": "VariableDeclaration", "src": "352:11:9" }, @@ -313,7 +313,7 @@ "attributes": { "constant": false, "name": "expires", - "scope": 1821, + "scope": 1844, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -326,12 +326,12 @@ "name": "uint", "type": "uint256" }, - "id": 1813, + "id": 1836, "name": "ElementaryTypeName", "src": "373:4:9" } ], - "id": 1814, + "id": 1837, "name": "VariableDeclaration", "src": "373:12:9" }, @@ -339,7 +339,7 @@ "attributes": { "constant": false, "name": "recipient", - "scope": 1821, + "scope": 1844, "stateVariable": false, "storageLocation": "default", "type": "address", @@ -352,12 +352,12 @@ "name": "address", "type": "address" }, - "id": 1815, + "id": 1838, "name": "ElementaryTypeName", "src": "395:7:9" } ], - "id": 1816, + "id": 1839, "name": "VariableDeclaration", "src": "395:17:9" }, @@ -365,7 +365,7 @@ "attributes": { "constant": false, "name": "txnKey", - "scope": 1821, + "scope": 1844, "stateVariable": false, "storageLocation": "default", "type": "bytes32", @@ -378,12 +378,12 @@ "name": "bytes32", "type": "bytes32" }, - "id": 1817, + "id": 1840, "name": "ElementaryTypeName", "src": "422:7:9" } ], - "id": 1818, + "id": 1841, "name": "VariableDeclaration", "src": "422:14:9" }, @@ -391,7 +391,7 @@ "attributes": { "constant": false, "name": "active", - "scope": 1821, + "scope": 1844, "stateVariable": false, "storageLocation": "default", "type": "bool", @@ -404,17 +404,17 @@ "name": "bool", "type": "bool" }, - "id": 1819, + "id": 1842, "name": "ElementaryTypeName", "src": "446:4:9" } ], - "id": 1820, + "id": 1843, "name": "VariableDeclaration", "src": "446:11:9" } ], - "id": 1821, + "id": 1844, "name": "StructDefinition", "src": "324:140:9" }, @@ -428,7 +428,7 @@ ], "name": "getBadgeNameHash", "payable": false, - "scope": 1876, + "scope": 1899, "stateMutability": "pure", "superFunction": null, "visibility": "public" @@ -440,7 +440,7 @@ "attributes": { "constant": false, "name": "_badgename", - "scope": 1833, + "scope": 1856, "stateVariable": false, "storageLocation": "default", "type": "string memory", @@ -453,17 +453,17 @@ "name": "string", "type": "string storage pointer" }, - "id": 1822, + "id": 1845, "name": "ElementaryTypeName", "src": "543:6:9" } ], - "id": 1823, + "id": 1846, "name": "VariableDeclaration", "src": "543:17:9" } ], - "id": 1824, + "id": 1847, "name": "ParameterList", "src": "542:19:9" }, @@ -473,7 +473,7 @@ "attributes": { "constant": false, "name": "_hash", - "scope": 1833, + "scope": 1856, "stateVariable": false, "storageLocation": "default", "type": "bytes32", @@ -486,17 +486,17 @@ "name": "bytes32", "type": "bytes32" }, - "id": 1825, + "id": 1848, "name": "ElementaryTypeName", "src": "583:7:9" } ], - "id": 1826, + "id": 1849, "name": "VariableDeclaration", "src": "583:13:9" } ], - "id": 1827, + "id": 1850, "name": "ParameterList", "src": "582:15:9" }, @@ -504,7 +504,7 @@ "children": [ { "attributes": { - "functionReturnParameters": 1827 + "functionReturnParameters": 1850 }, "children": [ { @@ -533,11 +533,11 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 2473, + "referencedDeclaration": 2496, "type": "function () pure returns (bytes32)", "value": "keccak256" }, - "id": 1828, + "id": 1851, "name": "Identifier", "src": "615:9:9" }, @@ -547,31 +547,31 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1823, + "referencedDeclaration": 1846, "type": "string memory", "value": "_badgename" }, - "id": 1829, + "id": 1852, "name": "Identifier", "src": "625:10:9" } ], - "id": 1830, + "id": 1853, "name": "FunctionCall", "src": "615:21:9" } ], - "id": 1831, + "id": 1854, "name": "Return", "src": "608:28:9" } ], - "id": 1832, + "id": 1855, "name": "Block", "src": "598:45:9" } ], - "id": 1833, + "id": 1856, "name": "FunctionDefinition", "src": "517:126:9" }, @@ -585,7 +585,7 @@ ], "name": "getBadgeLinkHash", "payable": false, - "scope": 1876, + "scope": 1899, "stateMutability": "pure", "superFunction": null, "visibility": "public" @@ -597,7 +597,7 @@ "attributes": { "constant": false, "name": "_name", - "scope": 1848, + "scope": 1871, "stateVariable": false, "storageLocation": "default", "type": "string memory", @@ -610,12 +610,12 @@ "name": "string", "type": "string storage pointer" }, - "id": 1834, + "id": 1857, "name": "ElementaryTypeName", "src": "722:6:9" } ], - "id": 1835, + "id": 1858, "name": "VariableDeclaration", "src": "722:12:9" }, @@ -623,7 +623,7 @@ "attributes": { "constant": false, "name": "_issuer", - "scope": 1848, + "scope": 1871, "stateVariable": false, "storageLocation": "default", "type": "address", @@ -636,17 +636,17 @@ "name": "address", "type": "address" }, - "id": 1836, + "id": 1859, "name": "ElementaryTypeName", "src": "736:7:9" } ], - "id": 1837, + "id": 1860, "name": "VariableDeclaration", "src": "736:15:9" } ], - "id": 1838, + "id": 1861, "name": "ParameterList", "src": "721:31:9" }, @@ -656,7 +656,7 @@ "attributes": { "constant": false, "name": "hash", - "scope": 1848, + "scope": 1871, "stateVariable": false, "storageLocation": "default", "type": "bytes32", @@ -669,17 +669,17 @@ "name": "bytes32", "type": "bytes32" }, - "id": 1839, + "id": 1862, "name": "ElementaryTypeName", "src": "774:7:9" } ], - "id": 1840, + "id": 1863, "name": "VariableDeclaration", "src": "774:12:9" } ], - "id": 1841, + "id": 1864, "name": "ParameterList", "src": "773:14:9" }, @@ -687,7 +687,7 @@ "children": [ { "attributes": { - "functionReturnParameters": 1841 + "functionReturnParameters": 1864 }, "children": [ { @@ -720,11 +720,11 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 2473, + "referencedDeclaration": 2496, "type": "function () pure returns (bytes32)", "value": "keccak256" }, - "id": 1842, + "id": 1865, "name": "Identifier", "src": "805:9:9" }, @@ -734,11 +734,11 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1835, + "referencedDeclaration": 1858, "type": "string memory", "value": "_name" }, - "id": 1843, + "id": 1866, "name": "Identifier", "src": "815:5:9" }, @@ -748,31 +748,31 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1837, + "referencedDeclaration": 1860, "type": "address", "value": "_issuer" }, - "id": 1844, + "id": 1867, "name": "Identifier", "src": "822:7:9" } ], - "id": 1845, + "id": 1868, "name": "FunctionCall", "src": "805:25:9" } ], - "id": 1846, + "id": 1869, "name": "Return", "src": "798:32:9" } ], - "id": 1847, + "id": 1870, "name": "Block", "src": "788:49:9" } ], - "id": 1848, + "id": 1871, "name": "FunctionDefinition", "src": "696:141:9" }, @@ -786,7 +786,7 @@ ], "name": "getIntegrityHash", "payable": false, - "scope": 1876, + "scope": 1899, "stateMutability": "pure", "superFunction": null, "visibility": "public" @@ -798,7 +798,7 @@ "attributes": { "constant": false, "name": "issuer", - "scope": 1875, + "scope": 1898, "stateVariable": false, "storageLocation": "default", "type": "address", @@ -811,12 +811,12 @@ "name": "address", "type": "address" }, - "id": 1849, + "id": 1872, "name": "ElementaryTypeName", "src": "936:7:9" } ], - "id": 1850, + "id": 1873, "name": "VariableDeclaration", "src": "936:14:9" }, @@ -824,7 +824,7 @@ "attributes": { "constant": false, "name": "description", - "scope": 1875, + "scope": 1898, "stateVariable": false, "storageLocation": "default", "type": "string memory", @@ -837,12 +837,12 @@ "name": "string", "type": "string storage pointer" }, - "id": 1851, + "id": 1874, "name": "ElementaryTypeName", "src": "961:6:9" } ], - "id": 1852, + "id": 1875, "name": "VariableDeclaration", "src": "961:18:9" }, @@ -850,7 +850,7 @@ "attributes": { "constant": false, "name": "name", - "scope": 1875, + "scope": 1898, "stateVariable": false, "storageLocation": "default", "type": "string memory", @@ -863,12 +863,12 @@ "name": "string", "type": "string storage pointer" }, - "id": 1853, + "id": 1876, "name": "ElementaryTypeName", "src": "990:6:9" } ], - "id": 1854, + "id": 1877, "name": "VariableDeclaration", "src": "990:11:9" }, @@ -876,7 +876,7 @@ "attributes": { "constant": false, "name": "image", - "scope": 1875, + "scope": 1898, "stateVariable": false, "storageLocation": "default", "type": "string memory", @@ -889,12 +889,12 @@ "name": "string", "type": "string storage pointer" }, - "id": 1855, + "id": 1878, "name": "ElementaryTypeName", "src": "1012:6:9" } ], - "id": 1856, + "id": 1879, "name": "VariableDeclaration", "src": "1012:12:9" }, @@ -902,7 +902,7 @@ "attributes": { "constant": false, "name": "version", - "scope": 1875, + "scope": 1898, "stateVariable": false, "storageLocation": "default", "type": "string memory", @@ -915,12 +915,12 @@ "name": "string", "type": "string storage pointer" }, - "id": 1857, + "id": 1880, "name": "ElementaryTypeName", "src": "1035:6:9" } ], - "id": 1858, + "id": 1881, "name": "VariableDeclaration", "src": "1035:14:9" }, @@ -928,7 +928,7 @@ "attributes": { "constant": false, "name": "recipient", - "scope": 1875, + "scope": 1898, "stateVariable": false, "storageLocation": "default", "type": "address", @@ -941,17 +941,17 @@ "name": "address", "type": "address" }, - "id": 1859, + "id": 1882, "name": "ElementaryTypeName", "src": "1059:7:9" } ], - "id": 1860, + "id": 1883, "name": "VariableDeclaration", "src": "1059:17:9" } ], - "id": 1861, + "id": 1884, "name": "ParameterList", "src": "926:156:9" }, @@ -961,7 +961,7 @@ "attributes": { "constant": false, "name": "_hash", - "scope": 1875, + "scope": 1898, "stateVariable": false, "storageLocation": "default", "type": "bytes32", @@ -974,17 +974,17 @@ "name": "bytes32", "type": "bytes32" }, - "id": 1862, + "id": 1885, "name": "ElementaryTypeName", "src": "1103:7:9" } ], - "id": 1863, + "id": 1886, "name": "VariableDeclaration", "src": "1103:13:9" } ], - "id": 1864, + "id": 1887, "name": "ParameterList", "src": "1102:15:9" }, @@ -992,7 +992,7 @@ "children": [ { "attributes": { - "functionReturnParameters": 1864 + "functionReturnParameters": 1887 }, "children": [ { @@ -1041,11 +1041,11 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 2473, + "referencedDeclaration": 2496, "type": "function () pure returns (bytes32)", "value": "keccak256" }, - "id": 1865, + "id": 1888, "name": "Identifier", "src": "1140:9:9" }, @@ -1055,11 +1055,11 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1850, + "referencedDeclaration": 1873, "type": "address", "value": "issuer" }, - "id": 1866, + "id": 1889, "name": "Identifier", "src": "1167:6:9" }, @@ -1069,11 +1069,11 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1852, + "referencedDeclaration": 1875, "type": "string memory", "value": "description" }, - "id": 1867, + "id": 1890, "name": "Identifier", "src": "1192:11:9" }, @@ -1083,11 +1083,11 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1854, + "referencedDeclaration": 1877, "type": "string memory", "value": "name" }, - "id": 1868, + "id": 1891, "name": "Identifier", "src": "1222:4:9" }, @@ -1097,11 +1097,11 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1856, + "referencedDeclaration": 1879, "type": "string memory", "value": "image" }, - "id": 1869, + "id": 1892, "name": "Identifier", "src": "1245:5:9" }, @@ -1111,11 +1111,11 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1858, + "referencedDeclaration": 1881, "type": "string memory", "value": "version" }, - "id": 1870, + "id": 1893, "name": "Identifier", "src": "1269:7:9" }, @@ -1125,41 +1125,41 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1860, + "referencedDeclaration": 1883, "type": "address", "value": "recipient" }, - "id": 1871, + "id": 1894, "name": "Identifier", "src": "1295:9:9" } ], - "id": 1872, + "id": 1895, "name": "FunctionCall", "src": "1140:174:9" } ], - "id": 1873, + "id": 1896, "name": "Return", "src": "1133:181:9" } ], - "id": 1874, + "id": 1897, "name": "Block", "src": "1123:198:9" } ], - "id": 1875, + "id": 1898, "name": "FunctionDefinition", "src": "901:420:9" } ], - "id": 1876, + "id": 1899, "name": "ContractDefinition", "src": "26:1297:9" } ], - "id": 1877, + "id": 1900, "name": "SourceUnit", "src": "0:1323:9" }, @@ -1169,5 +1169,5 @@ }, "networks": {}, "schemaVersion": "1.0.1", - "updatedAt": "2018-01-14T11:06:54.645Z" + "updatedAt": "2018-01-16T07:16:25.774Z" } \ No newline at end of file diff --git a/build/contracts/BadgeManager.json b/build/contracts/BadgeManager.json index 9f13e37..04921bd 100644 --- a/build/contracts/BadgeManager.json +++ b/build/contracts/BadgeManager.json @@ -1082,7 +1082,7 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 2482, + "referencedDeclaration": 2505, "type": "function (bool) pure", "value": "require" }, @@ -1784,7 +1784,7 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 2482, + "referencedDeclaration": 2505, "type": "function (bool) pure", "value": "require" }, @@ -2131,7 +2131,7 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 2482, + "referencedDeclaration": 2505, "type": "function (bool) pure", "value": "require" }, @@ -2650,7 +2650,7 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 2479, + "referencedDeclaration": 2502, "type": "msg", "value": "msg" }, @@ -3083,7 +3083,7 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 2494, + "referencedDeclaration": 2517, "type": "contract BadgeManager", "value": "this" }, @@ -3663,7 +3663,7 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 2479, + "referencedDeclaration": 2502, "type": "msg", "value": "msg" }, @@ -5544,7 +5544,7 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 2473, + "referencedDeclaration": 2496, "type": "function () pure returns (bytes32)", "value": "keccak256" }, @@ -5731,7 +5731,7 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 2473, + "referencedDeclaration": 2496, "type": "function () pure returns (bytes32)", "value": "keccak256" }, @@ -5803,5 +5803,5 @@ }, "networks": {}, "schemaVersion": "1.0.1", - "updatedAt": "2018-01-14T11:06:54.636Z" + "updatedAt": "2018-01-16T07:16:25.768Z" } \ No newline at end of file diff --git a/build/contracts/BasicToken.json b/build/contracts/BasicToken.json index 1e263a5..863da61 100644 --- a/build/contracts/BasicToken.json +++ b/build/contracts/BasicToken.json @@ -91,7 +91,7 @@ "absolutePath": "zeppelin-solidity/contracts/token/BasicToken.sol", "exportedSymbols": { "BasicToken": [ - 2060 + 2083 ] } }, @@ -105,54 +105,54 @@ ".18" ] }, - "id": 1976, + "id": 1999, "name": "PragmaDirective", "src": "0:24:11" }, { "attributes": { - "SourceUnit": 2222, + "SourceUnit": 2245, "absolutePath": "zeppelin-solidity/contracts/token/ERC20Basic.sol", "file": "./ERC20Basic.sol", - "scope": 2061, + "scope": 2084, "symbolAliases": [ null ], "unitAlias": "" }, - "id": 1977, + "id": 2000, "name": "ImportDirective", "src": "27:26:11" }, { "attributes": { - "SourceUnit": 1975, + "SourceUnit": 1998, "absolutePath": "zeppelin-solidity/contracts/math/SafeMath.sol", "file": "../math/SafeMath.sol", - "scope": 2061, + "scope": 2084, "symbolAliases": [ null ], "unitAlias": "" }, - "id": 1978, + "id": 2001, "name": "ImportDirective", "src": "54:30:11" }, { "attributes": { "contractDependencies": [ - 2221 + 2244 ], "contractKind": "contract", "documentation": "@title Basic token\n@dev Basic version of StandardToken, with no allowances.", "fullyImplemented": true, "linearizedBaseContracts": [ - 2060, - 2221 + 2083, + 2244 ], "name": "BasicToken", - "scope": 2061 + "scope": 2084 }, "children": [ { @@ -166,15 +166,15 @@ "attributes": { "contractScope": null, "name": "ERC20Basic", - "referencedDeclaration": 2221, + "referencedDeclaration": 2244, "type": "contract ERC20Basic" }, - "id": 1979, + "id": 2002, "name": "UserDefinedTypeName", "src": "200:10:11" } ], - "id": 1980, + "id": 2003, "name": "InheritanceSpecifier", "src": "200:10:11" }, @@ -184,10 +184,10 @@ "attributes": { "contractScope": null, "name": "SafeMath", - "referencedDeclaration": 1974, + "referencedDeclaration": 1997, "type": "library SafeMath" }, - "id": 1981, + "id": 2004, "name": "UserDefinedTypeName", "src": "221:8:11" }, @@ -196,12 +196,12 @@ "name": "uint256", "type": "uint256" }, - "id": 1982, + "id": 2005, "name": "ElementaryTypeName", "src": "234:7:11" } ], - "id": 1983, + "id": 2006, "name": "UsingForDirective", "src": "215:27:11" }, @@ -209,7 +209,7 @@ "attributes": { "constant": false, "name": "balances", - "scope": 2060, + "scope": 2083, "stateVariable": true, "storageLocation": "default", "type": "mapping(address => uint256)", @@ -227,7 +227,7 @@ "name": "address", "type": "address" }, - "id": 1984, + "id": 2007, "name": "ElementaryTypeName", "src": "254:7:11" }, @@ -236,17 +236,17 @@ "name": "uint256", "type": "uint256" }, - "id": 1985, + "id": 2008, "name": "ElementaryTypeName", "src": "265:7:11" } ], - "id": 1986, + "id": 2009, "name": "Mapping", "src": "246:27:11" } ], - "id": 1987, + "id": 2010, "name": "VariableDeclaration", "src": "246:36:11" }, @@ -260,9 +260,9 @@ ], "name": "transfer", "payable": false, - "scope": 2060, + "scope": 2083, "stateMutability": "nonpayable", - "superFunction": 2212, + "superFunction": 2235, "visibility": "public" }, "children": [ @@ -272,7 +272,7 @@ "attributes": { "constant": false, "name": "_to", - "scope": 2047, + "scope": 2070, "stateVariable": false, "storageLocation": "default", "type": "address", @@ -285,12 +285,12 @@ "name": "address", "type": "address" }, - "id": 1988, + "id": 2011, "name": "ElementaryTypeName", "src": "455:7:11" } ], - "id": 1989, + "id": 2012, "name": "VariableDeclaration", "src": "455:11:11" }, @@ -298,7 +298,7 @@ "attributes": { "constant": false, "name": "_value", - "scope": 2047, + "scope": 2070, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -311,17 +311,17 @@ "name": "uint256", "type": "uint256" }, - "id": 1990, + "id": 2013, "name": "ElementaryTypeName", "src": "468:7:11" } ], - "id": 1991, + "id": 2014, "name": "VariableDeclaration", "src": "468:14:11" } ], - "id": 1992, + "id": 2015, "name": "ParameterList", "src": "454:29:11" }, @@ -331,7 +331,7 @@ "attributes": { "constant": false, "name": "", - "scope": 2047, + "scope": 2070, "stateVariable": false, "storageLocation": "default", "type": "bool", @@ -344,17 +344,17 @@ "name": "bool", "type": "bool" }, - "id": 1993, + "id": 2016, "name": "ElementaryTypeName", "src": "500:4:11" } ], - "id": 1994, + "id": 2017, "name": "VariableDeclaration", "src": "500:4:11" } ], - "id": 1995, + "id": 2018, "name": "ParameterList", "src": "499:6:11" }, @@ -388,11 +388,11 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 2482, + "referencedDeclaration": 2505, "type": "function (bool) pure", "value": "require" }, - "id": 1996, + "id": 2019, "name": "Identifier", "src": "512:7:11" }, @@ -417,11 +417,11 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1989, + "referencedDeclaration": 2012, "type": "address", "value": "_to" }, - "id": 1997, + "id": 2020, "name": "Identifier", "src": "520:3:11" }, @@ -455,7 +455,7 @@ "type": "type(address)", "value": "address" }, - "id": 1998, + "id": 2021, "name": "ElementaryTypeNameExpression", "src": "527:7:11" }, @@ -472,27 +472,27 @@ "type": "int_const 0", "value": "0" }, - "id": 1999, + "id": 2022, "name": "Literal", "src": "535:1:11" } ], - "id": 2000, + "id": 2023, "name": "FunctionCall", "src": "527:10:11" } ], - "id": 2001, + "id": 2024, "name": "BinaryOperation", "src": "520:17:11" } ], - "id": 2002, + "id": 2025, "name": "FunctionCall", "src": "512:26:11" } ], - "id": 2003, + "id": 2026, "name": "ExpressionStatement", "src": "512:26:11" }, @@ -524,11 +524,11 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 2482, + "referencedDeclaration": 2505, "type": "function (bool) pure", "value": "require" }, - "id": 2004, + "id": 2027, "name": "Identifier", "src": "544:7:11" }, @@ -553,11 +553,11 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1991, + "referencedDeclaration": 2014, "type": "uint256", "value": "_value" }, - "id": 2005, + "id": 2028, "name": "Identifier", "src": "552:6:11" }, @@ -577,11 +577,11 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1987, + "referencedDeclaration": 2010, "type": "mapping(address => uint256)", "value": "balances" }, - "id": 2006, + "id": 2029, "name": "Identifier", "src": "562:8:11" }, @@ -603,36 +603,36 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 2479, + "referencedDeclaration": 2502, "type": "msg", "value": "msg" }, - "id": 2007, + "id": 2030, "name": "Identifier", "src": "571:3:11" } ], - "id": 2008, + "id": 2031, "name": "MemberAccess", "src": "571:10:11" } ], - "id": 2009, + "id": 2032, "name": "IndexAccess", "src": "562:20:11" } ], - "id": 2010, + "id": 2033, "name": "BinaryOperation", "src": "552:30:11" } ], - "id": 2011, + "id": 2034, "name": "FunctionCall", "src": "544:39:11" } ], - "id": 2012, + "id": 2035, "name": "ExpressionStatement", "src": "544:39:11" }, @@ -665,11 +665,11 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1987, + "referencedDeclaration": 2010, "type": "mapping(address => uint256)", "value": "balances" }, - "id": 2013, + "id": 2036, "name": "Identifier", "src": "653:8:11" }, @@ -691,21 +691,21 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 2479, + "referencedDeclaration": 2502, "type": "msg", "value": "msg" }, - "id": 2014, + "id": 2037, "name": "Identifier", "src": "662:3:11" } ], - "id": 2015, + "id": 2038, "name": "MemberAccess", "src": "662:10:11" } ], - "id": 2016, + "id": 2039, "name": "IndexAccess", "src": "653:20:11" }, @@ -737,7 +737,7 @@ "isPure": false, "lValueRequested": false, "member_name": "sub", - "referencedDeclaration": 1949, + "referencedDeclaration": 1972, "type": "function (uint256,uint256) pure returns (uint256)" }, "children": [ @@ -757,11 +757,11 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1987, + "referencedDeclaration": 2010, "type": "mapping(address => uint256)", "value": "balances" }, - "id": 2017, + "id": 2040, "name": "Identifier", "src": "676:8:11" }, @@ -783,26 +783,26 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 2479, + "referencedDeclaration": 2502, "type": "msg", "value": "msg" }, - "id": 2018, + "id": 2041, "name": "Identifier", "src": "685:3:11" } ], - "id": 2019, + "id": 2042, "name": "MemberAccess", "src": "685:10:11" } ], - "id": 2020, + "id": 2043, "name": "IndexAccess", "src": "676:20:11" } ], - "id": 2021, + "id": 2044, "name": "MemberAccess", "src": "676:24:11" }, @@ -812,26 +812,26 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1991, + "referencedDeclaration": 2014, "type": "uint256", "value": "_value" }, - "id": 2022, + "id": 2045, "name": "Identifier", "src": "701:6:11" } ], - "id": 2023, + "id": 2046, "name": "FunctionCall", "src": "676:32:11" } ], - "id": 2024, + "id": 2047, "name": "Assignment", "src": "653:55:11" } ], - "id": 2025, + "id": 2048, "name": "ExpressionStatement", "src": "653:55:11" }, @@ -864,11 +864,11 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1987, + "referencedDeclaration": 2010, "type": "mapping(address => uint256)", "value": "balances" }, - "id": 2026, + "id": 2049, "name": "Identifier", "src": "714:8:11" }, @@ -878,16 +878,16 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1989, + "referencedDeclaration": 2012, "type": "address", "value": "_to" }, - "id": 2027, + "id": 2050, "name": "Identifier", "src": "723:3:11" } ], - "id": 2028, + "id": 2051, "name": "IndexAccess", "src": "714:13:11" }, @@ -919,7 +919,7 @@ "isPure": false, "lValueRequested": false, "member_name": "add", - "referencedDeclaration": 1973, + "referencedDeclaration": 1996, "type": "function (uint256,uint256) pure returns (uint256)" }, "children": [ @@ -939,11 +939,11 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1987, + "referencedDeclaration": 2010, "type": "mapping(address => uint256)", "value": "balances" }, - "id": 2029, + "id": 2052, "name": "Identifier", "src": "730:8:11" }, @@ -953,21 +953,21 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1989, + "referencedDeclaration": 2012, "type": "address", "value": "_to" }, - "id": 2030, + "id": 2053, "name": "Identifier", "src": "739:3:11" } ], - "id": 2031, + "id": 2054, "name": "IndexAccess", "src": "730:13:11" } ], - "id": 2032, + "id": 2055, "name": "MemberAccess", "src": "730:17:11" }, @@ -977,26 +977,26 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1991, + "referencedDeclaration": 2014, "type": "uint256", "value": "_value" }, - "id": 2033, + "id": 2056, "name": "Identifier", "src": "748:6:11" } ], - "id": 2034, + "id": 2057, "name": "FunctionCall", "src": "730:25:11" } ], - "id": 2035, + "id": 2058, "name": "Assignment", "src": "714:41:11" } ], - "id": 2036, + "id": 2059, "name": "ExpressionStatement", "src": "714:41:11" }, @@ -1036,11 +1036,11 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 2220, + "referencedDeclaration": 2243, "type": "function (address,address,uint256)", "value": "Transfer" }, - "id": 2037, + "id": 2060, "name": "Identifier", "src": "761:8:11" }, @@ -1062,16 +1062,16 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 2479, + "referencedDeclaration": 2502, "type": "msg", "value": "msg" }, - "id": 2038, + "id": 2061, "name": "Identifier", "src": "770:3:11" } ], - "id": 2039, + "id": 2062, "name": "MemberAccess", "src": "770:10:11" }, @@ -1081,11 +1081,11 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1989, + "referencedDeclaration": 2012, "type": "address", "value": "_to" }, - "id": 2040, + "id": 2063, "name": "Identifier", "src": "782:3:11" }, @@ -1095,27 +1095,27 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1991, + "referencedDeclaration": 2014, "type": "uint256", "value": "_value" }, - "id": 2041, + "id": 2064, "name": "Identifier", "src": "787:6:11" } ], - "id": 2042, + "id": 2065, "name": "FunctionCall", "src": "761:33:11" } ], - "id": 2043, + "id": 2066, "name": "ExpressionStatement", "src": "761:33:11" }, { "attributes": { - "functionReturnParameters": 1995 + "functionReturnParameters": 2018 }, "children": [ { @@ -1131,22 +1131,22 @@ "type": "bool", "value": "true" }, - "id": 2044, + "id": 2067, "name": "Literal", "src": "807:4:11" } ], - "id": 2045, + "id": 2068, "name": "Return", "src": "800:11:11" } ], - "id": 2046, + "id": 2069, "name": "Block", "src": "506:310:11" } ], - "id": 2047, + "id": 2070, "name": "FunctionDefinition", "src": "437:379:11" }, @@ -1160,9 +1160,9 @@ ], "name": "balanceOf", "payable": false, - "scope": 2060, + "scope": 2083, "stateMutability": "view", - "superFunction": 2203, + "superFunction": 2226, "visibility": "public" }, "children": [ @@ -1172,7 +1172,7 @@ "attributes": { "constant": false, "name": "_owner", - "scope": 2059, + "scope": 2082, "stateVariable": false, "storageLocation": "default", "type": "address", @@ -1185,17 +1185,17 @@ "name": "address", "type": "address" }, - "id": 2048, + "id": 2071, "name": "ElementaryTypeName", "src": "1037:7:11" } ], - "id": 2049, + "id": 2072, "name": "VariableDeclaration", "src": "1037:14:11" } ], - "id": 2050, + "id": 2073, "name": "ParameterList", "src": "1036:16:11" }, @@ -1205,7 +1205,7 @@ "attributes": { "constant": false, "name": "balance", - "scope": 2059, + "scope": 2082, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -1218,17 +1218,17 @@ "name": "uint256", "type": "uint256" }, - "id": 2051, + "id": 2074, "name": "ElementaryTypeName", "src": "1074:7:11" } ], - "id": 2052, + "id": 2075, "name": "VariableDeclaration", "src": "1074:15:11" } ], - "id": 2053, + "id": 2076, "name": "ParameterList", "src": "1073:17:11" }, @@ -1236,7 +1236,7 @@ "children": [ { "attributes": { - "functionReturnParameters": 2053 + "functionReturnParameters": 2076 }, "children": [ { @@ -1255,11 +1255,11 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1987, + "referencedDeclaration": 2010, "type": "mapping(address => uint256)", "value": "balances" }, - "id": 2054, + "id": 2077, "name": "Identifier", "src": "1104:8:11" }, @@ -1269,41 +1269,41 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 2049, + "referencedDeclaration": 2072, "type": "address", "value": "_owner" }, - "id": 2055, + "id": 2078, "name": "Identifier", "src": "1113:6:11" } ], - "id": 2056, + "id": 2079, "name": "IndexAccess", "src": "1104:16:11" } ], - "id": 2057, + "id": 2080, "name": "Return", "src": "1097:23:11" } ], - "id": 2058, + "id": 2081, "name": "Block", "src": "1091:34:11" } ], - "id": 2059, + "id": 2082, "name": "FunctionDefinition", "src": "1018:107:11" } ], - "id": 2060, + "id": 2083, "name": "ContractDefinition", "src": "177:951:11" } ], - "id": 2061, + "id": 2084, "name": "SourceUnit", "src": "0:1129:11" }, @@ -1313,5 +1313,5 @@ }, "networks": {}, "schemaVersion": "1.0.1", - "updatedAt": "2018-01-14T11:06:54.646Z" + "updatedAt": "2018-01-16T07:16:25.775Z" } \ No newline at end of file diff --git a/build/contracts/BurnableToken.json b/build/contracts/BurnableToken.json index d785cff..3c6e53e 100644 --- a/build/contracts/BurnableToken.json +++ b/build/contracts/BurnableToken.json @@ -122,7 +122,7 @@ "absolutePath": "zeppelin-solidity/contracts/token/BurnableToken.sol", "exportedSymbols": { "BurnableToken": [ - 2115 + 2138 ] } }, @@ -136,41 +136,41 @@ ".18" ] }, - "id": 2062, + "id": 2085, "name": "PragmaDirective", "src": "0:24:12" }, { "attributes": { - "SourceUnit": 2061, + "SourceUnit": 2084, "absolutePath": "zeppelin-solidity/contracts/token/BasicToken.sol", "file": "./BasicToken.sol", - "scope": 2116, + "scope": 2139, "symbolAliases": [ null ], "unitAlias": "" }, - "id": 2063, + "id": 2086, "name": "ImportDirective", "src": "26:26:12" }, { "attributes": { "contractDependencies": [ - 2060, - 2221 + 2083, + 2244 ], "contractKind": "contract", "documentation": "@title Burnable Token\n@dev Token that can be irreversibly burned (destroyed).", "fullyImplemented": true, "linearizedBaseContracts": [ - 2115, - 2060, - 2221 + 2138, + 2083, + 2244 ], "name": "BurnableToken", - "scope": 2116 + "scope": 2139 }, "children": [ { @@ -184,15 +184,15 @@ "attributes": { "contractScope": null, "name": "BasicToken", - "referencedDeclaration": 2060, + "referencedDeclaration": 2083, "type": "contract BasicToken" }, - "id": 2064, + "id": 2087, "name": "UserDefinedTypeName", "src": "172:10:12" } ], - "id": 2065, + "id": 2088, "name": "InheritanceSpecifier", "src": "172:10:12" }, @@ -209,7 +209,7 @@ "constant": false, "indexed": true, "name": "burner", - "scope": 2071, + "scope": 2094, "stateVariable": false, "storageLocation": "default", "type": "address", @@ -222,12 +222,12 @@ "name": "address", "type": "address" }, - "id": 2066, + "id": 2089, "name": "ElementaryTypeName", "src": "201:7:12" } ], - "id": 2067, + "id": 2090, "name": "VariableDeclaration", "src": "201:22:12" }, @@ -236,7 +236,7 @@ "constant": false, "indexed": false, "name": "value", - "scope": 2071, + "scope": 2094, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -249,22 +249,22 @@ "name": "uint256", "type": "uint256" }, - "id": 2068, + "id": 2091, "name": "ElementaryTypeName", "src": "225:7:12" } ], - "id": 2069, + "id": 2092, "name": "VariableDeclaration", "src": "225:13:12" } ], - "id": 2070, + "id": 2093, "name": "ParameterList", "src": "200:39:12" } ], - "id": 2071, + "id": 2094, "name": "EventDefinition", "src": "190:50:12" }, @@ -278,7 +278,7 @@ ], "name": "burn", "payable": false, - "scope": 2115, + "scope": 2138, "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" @@ -290,7 +290,7 @@ "attributes": { "constant": false, "name": "_value", - "scope": 2114, + "scope": 2137, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -303,17 +303,17 @@ "name": "uint256", "type": "uint256" }, - "id": 2072, + "id": 2095, "name": "ElementaryTypeName", "src": "378:7:12" } ], - "id": 2073, + "id": 2096, "name": "VariableDeclaration", "src": "378:14:12" } ], - "id": 2074, + "id": 2097, "name": "ParameterList", "src": "377:16:12" }, @@ -324,7 +324,7 @@ ] }, "children": [], - "id": 2075, + "id": 2098, "name": "ParameterList", "src": "401:0:12" }, @@ -358,11 +358,11 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 2482, + "referencedDeclaration": 2505, "type": "function (bool) pure", "value": "require" }, - "id": 2076, + "id": 2099, "name": "Identifier", "src": "411:7:12" }, @@ -387,11 +387,11 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 2073, + "referencedDeclaration": 2096, "type": "uint256", "value": "_value" }, - "id": 2077, + "id": 2100, "name": "Identifier", "src": "419:6:12" }, @@ -411,11 +411,11 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1987, + "referencedDeclaration": 2010, "type": "mapping(address => uint256)", "value": "balances" }, - "id": 2078, + "id": 2101, "name": "Identifier", "src": "429:8:12" }, @@ -437,43 +437,43 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 2479, + "referencedDeclaration": 2502, "type": "msg", "value": "msg" }, - "id": 2079, + "id": 2102, "name": "Identifier", "src": "438:3:12" } ], - "id": 2080, + "id": 2103, "name": "MemberAccess", "src": "438:10:12" } ], - "id": 2081, + "id": 2104, "name": "IndexAccess", "src": "429:20:12" } ], - "id": 2082, + "id": 2105, "name": "BinaryOperation", "src": "419:30:12" } ], - "id": 2083, + "id": 2106, "name": "FunctionCall", "src": "411:39:12" } ], - "id": 2084, + "id": 2107, "name": "ExpressionStatement", "src": "411:39:12" }, { "attributes": { "assignments": [ - 2086 + 2109 ] }, "children": [ @@ -481,7 +481,7 @@ "attributes": { "constant": false, "name": "burner", - "scope": 2114, + "scope": 2137, "stateVariable": false, "storageLocation": "default", "type": "address", @@ -494,12 +494,12 @@ "name": "address", "type": "address" }, - "id": 2085, + "id": 2108, "name": "ElementaryTypeName", "src": "640:7:12" } ], - "id": 2086, + "id": 2109, "name": "VariableDeclaration", "src": "640:14:12" }, @@ -521,21 +521,21 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 2479, + "referencedDeclaration": 2502, "type": "msg", "value": "msg" }, - "id": 2087, + "id": 2110, "name": "Identifier", "src": "657:3:12" } ], - "id": 2088, + "id": 2111, "name": "MemberAccess", "src": "657:10:12" } ], - "id": 2089, + "id": 2112, "name": "VariableDeclarationStatement", "src": "640:27:12" }, @@ -568,11 +568,11 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1987, + "referencedDeclaration": 2010, "type": "mapping(address => uint256)", "value": "balances" }, - "id": 2090, + "id": 2113, "name": "Identifier", "src": "677:8:12" }, @@ -582,16 +582,16 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 2086, + "referencedDeclaration": 2109, "type": "address", "value": "burner" }, - "id": 2091, + "id": 2114, "name": "Identifier", "src": "686:6:12" } ], - "id": 2092, + "id": 2115, "name": "IndexAccess", "src": "677:16:12" }, @@ -623,7 +623,7 @@ "isPure": false, "lValueRequested": false, "member_name": "sub", - "referencedDeclaration": 1949, + "referencedDeclaration": 1972, "type": "function (uint256,uint256) pure returns (uint256)" }, "children": [ @@ -643,11 +643,11 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1987, + "referencedDeclaration": 2010, "type": "mapping(address => uint256)", "value": "balances" }, - "id": 2093, + "id": 2116, "name": "Identifier", "src": "696:8:12" }, @@ -657,21 +657,21 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 2086, + "referencedDeclaration": 2109, "type": "address", "value": "burner" }, - "id": 2094, + "id": 2117, "name": "Identifier", "src": "705:6:12" } ], - "id": 2095, + "id": 2118, "name": "IndexAccess", "src": "696:16:12" } ], - "id": 2096, + "id": 2119, "name": "MemberAccess", "src": "696:20:12" }, @@ -681,26 +681,26 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 2073, + "referencedDeclaration": 2096, "type": "uint256", "value": "_value" }, - "id": 2097, + "id": 2120, "name": "Identifier", "src": "717:6:12" } ], - "id": 2098, + "id": 2121, "name": "FunctionCall", "src": "696:28:12" } ], - "id": 2099, + "id": 2122, "name": "Assignment", "src": "677:47:12" } ], - "id": 2100, + "id": 2123, "name": "ExpressionStatement", "src": "677:47:12" }, @@ -723,11 +723,11 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 2196, + "referencedDeclaration": 2219, "type": "uint256", "value": "totalSupply" }, - "id": 2101, + "id": 2124, "name": "Identifier", "src": "734:11:12" }, @@ -759,7 +759,7 @@ "isPure": false, "lValueRequested": false, "member_name": "sub", - "referencedDeclaration": 1949, + "referencedDeclaration": 1972, "type": "function (uint256,uint256) pure returns (uint256)" }, "children": [ @@ -769,16 +769,16 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 2196, + "referencedDeclaration": 2219, "type": "uint256", "value": "totalSupply" }, - "id": 2102, + "id": 2125, "name": "Identifier", "src": "748:11:12" } ], - "id": 2103, + "id": 2126, "name": "MemberAccess", "src": "748:15:12" }, @@ -788,26 +788,26 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 2073, + "referencedDeclaration": 2096, "type": "uint256", "value": "_value" }, - "id": 2104, + "id": 2127, "name": "Identifier", "src": "764:6:12" } ], - "id": 2105, + "id": 2128, "name": "FunctionCall", "src": "748:23:12" } ], - "id": 2106, + "id": 2129, "name": "Assignment", "src": "734:37:12" } ], - "id": 2107, + "id": 2130, "name": "ExpressionStatement", "src": "734:37:12" }, @@ -843,11 +843,11 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 2071, + "referencedDeclaration": 2094, "type": "function (address,uint256)", "value": "Burn" }, - "id": 2108, + "id": 2131, "name": "Identifier", "src": "781:4:12" }, @@ -857,11 +857,11 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 2086, + "referencedDeclaration": 2109, "type": "address", "value": "burner" }, - "id": 2109, + "id": 2132, "name": "Identifier", "src": "786:6:12" }, @@ -871,41 +871,41 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 2073, + "referencedDeclaration": 2096, "type": "uint256", "value": "_value" }, - "id": 2110, + "id": 2133, "name": "Identifier", "src": "794:6:12" } ], - "id": 2111, + "id": 2134, "name": "FunctionCall", "src": "781:20:12" } ], - "id": 2112, + "id": 2135, "name": "ExpressionStatement", "src": "781:20:12" } ], - "id": 2113, + "id": 2136, "name": "Block", "src": "401:407:12" } ], - "id": 2114, + "id": 2137, "name": "FunctionDefinition", "src": "364:444:12" } ], - "id": 2115, + "id": 2138, "name": "ContractDefinition", "src": "146:664:12" } ], - "id": 2116, + "id": 2139, "name": "SourceUnit", "src": "0:811:12" }, @@ -915,5 +915,5 @@ }, "networks": {}, "schemaVersion": "1.0.1", - "updatedAt": "2018-01-14T11:06:54.646Z" + "updatedAt": "2018-01-16T07:16:25.775Z" } \ No newline at end of file diff --git a/build/contracts/DetailedERC20.json b/build/contracts/DetailedERC20.json index 0b0e3ea..5adf319 100644 --- a/build/contracts/DetailedERC20.json +++ b/build/contracts/DetailedERC20.json @@ -247,7 +247,7 @@ "absolutePath": "zeppelin-solidity/contracts/token/DetailedERC20.sol", "exportedSymbols": { "DetailedERC20": [ - 2149 + 2172 ] } }, @@ -261,41 +261,41 @@ ".18" ] }, - "id": 2117, + "id": 2140, "name": "PragmaDirective", "src": "0:24:13" }, { "attributes": { - "SourceUnit": 2193, + "SourceUnit": 2216, "absolutePath": "zeppelin-solidity/contracts/token/ERC20.sol", "file": "./ERC20.sol", - "scope": 2150, + "scope": 2173, "symbolAliases": [ null ], "unitAlias": "" }, - "id": 2118, + "id": 2141, "name": "ImportDirective", "src": "26:21:13" }, { "attributes": { "contractDependencies": [ - 2192, - 2221 + 2215, + 2244 ], "contractKind": "contract", "documentation": null, "fullyImplemented": false, "linearizedBaseContracts": [ - 2149, - 2192, - 2221 + 2172, + 2215, + 2244 ], "name": "DetailedERC20", - "scope": 2150 + "scope": 2173 }, "children": [ { @@ -309,15 +309,15 @@ "attributes": { "contractScope": null, "name": "ERC20", - "referencedDeclaration": 2192, + "referencedDeclaration": 2215, "type": "contract ERC20" }, - "id": 2119, + "id": 2142, "name": "UserDefinedTypeName", "src": "75:5:13" } ], - "id": 2120, + "id": 2143, "name": "InheritanceSpecifier", "src": "75:5:13" }, @@ -325,7 +325,7 @@ "attributes": { "constant": false, "name": "name", - "scope": 2149, + "scope": 2172, "stateVariable": true, "storageLocation": "default", "type": "string storage ref", @@ -338,12 +338,12 @@ "name": "string", "type": "string storage pointer" }, - "id": 2121, + "id": 2144, "name": "ElementaryTypeName", "src": "85:6:13" } ], - "id": 2122, + "id": 2145, "name": "VariableDeclaration", "src": "85:18:13" }, @@ -351,7 +351,7 @@ "attributes": { "constant": false, "name": "symbol", - "scope": 2149, + "scope": 2172, "stateVariable": true, "storageLocation": "default", "type": "string storage ref", @@ -364,12 +364,12 @@ "name": "string", "type": "string storage pointer" }, - "id": 2123, + "id": 2146, "name": "ElementaryTypeName", "src": "107:6:13" } ], - "id": 2124, + "id": 2147, "name": "VariableDeclaration", "src": "107:20:13" }, @@ -377,7 +377,7 @@ "attributes": { "constant": false, "name": "decimals", - "scope": 2149, + "scope": 2172, "stateVariable": true, "storageLocation": "default", "type": "uint8", @@ -390,12 +390,12 @@ "name": "uint8", "type": "uint8" }, - "id": 2125, + "id": 2148, "name": "ElementaryTypeName", "src": "131:5:13" } ], - "id": 2126, + "id": 2149, "name": "VariableDeclaration", "src": "131:21:13" }, @@ -409,7 +409,7 @@ ], "name": "DetailedERC20", "payable": false, - "scope": 2149, + "scope": 2172, "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" @@ -421,7 +421,7 @@ "attributes": { "constant": false, "name": "_name", - "scope": 2148, + "scope": 2171, "stateVariable": false, "storageLocation": "default", "type": "string memory", @@ -434,12 +434,12 @@ "name": "string", "type": "string storage pointer" }, - "id": 2127, + "id": 2150, "name": "ElementaryTypeName", "src": "180:6:13" } ], - "id": 2128, + "id": 2151, "name": "VariableDeclaration", "src": "180:12:13" }, @@ -447,7 +447,7 @@ "attributes": { "constant": false, "name": "_symbol", - "scope": 2148, + "scope": 2171, "stateVariable": false, "storageLocation": "default", "type": "string memory", @@ -460,12 +460,12 @@ "name": "string", "type": "string storage pointer" }, - "id": 2129, + "id": 2152, "name": "ElementaryTypeName", "src": "194:6:13" } ], - "id": 2130, + "id": 2153, "name": "VariableDeclaration", "src": "194:14:13" }, @@ -473,7 +473,7 @@ "attributes": { "constant": false, "name": "_decimals", - "scope": 2148, + "scope": 2171, "stateVariable": false, "storageLocation": "default", "type": "uint8", @@ -486,17 +486,17 @@ "name": "uint8", "type": "uint8" }, - "id": 2131, + "id": 2154, "name": "ElementaryTypeName", "src": "210:5:13" } ], - "id": 2132, + "id": 2155, "name": "VariableDeclaration", "src": "210:15:13" } ], - "id": 2133, + "id": 2156, "name": "ParameterList", "src": "179:47:13" }, @@ -507,7 +507,7 @@ ] }, "children": [], - "id": 2134, + "id": 2157, "name": "ParameterList", "src": "234:0:13" }, @@ -532,11 +532,11 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 2122, + "referencedDeclaration": 2145, "type": "string storage ref", "value": "name" }, - "id": 2135, + "id": 2158, "name": "Identifier", "src": "240:4:13" }, @@ -546,21 +546,21 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 2128, + "referencedDeclaration": 2151, "type": "string memory", "value": "_name" }, - "id": 2136, + "id": 2159, "name": "Identifier", "src": "247:5:13" } ], - "id": 2137, + "id": 2160, "name": "Assignment", "src": "240:12:13" } ], - "id": 2138, + "id": 2161, "name": "ExpressionStatement", "src": "240:12:13" }, @@ -583,11 +583,11 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 2124, + "referencedDeclaration": 2147, "type": "string storage ref", "value": "symbol" }, - "id": 2139, + "id": 2162, "name": "Identifier", "src": "258:6:13" }, @@ -597,21 +597,21 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 2130, + "referencedDeclaration": 2153, "type": "string memory", "value": "_symbol" }, - "id": 2140, + "id": 2163, "name": "Identifier", "src": "267:7:13" } ], - "id": 2141, + "id": 2164, "name": "Assignment", "src": "258:16:13" } ], - "id": 2142, + "id": 2165, "name": "ExpressionStatement", "src": "258:16:13" }, @@ -634,11 +634,11 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 2126, + "referencedDeclaration": 2149, "type": "uint8", "value": "decimals" }, - "id": 2143, + "id": 2166, "name": "Identifier", "src": "280:8:13" }, @@ -648,41 +648,41 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 2132, + "referencedDeclaration": 2155, "type": "uint8", "value": "_decimals" }, - "id": 2144, + "id": 2167, "name": "Identifier", "src": "291:9:13" } ], - "id": 2145, + "id": 2168, "name": "Assignment", "src": "280:20:13" } ], - "id": 2146, + "id": 2169, "name": "ExpressionStatement", "src": "280:20:13" } ], - "id": 2147, + "id": 2170, "name": "Block", "src": "234:71:13" } ], - "id": 2148, + "id": 2171, "name": "FunctionDefinition", "src": "157:148:13" } ], - "id": 2149, + "id": 2172, "name": "ContractDefinition", "src": "49:258:13" } ], - "id": 2150, + "id": 2173, "name": "SourceUnit", "src": "0:308:13" }, @@ -692,5 +692,5 @@ }, "networks": {}, "schemaVersion": "1.0.1", - "updatedAt": "2018-01-14T11:06:54.646Z" + "updatedAt": "2018-01-16T07:16:25.776Z" } \ No newline at end of file diff --git a/build/contracts/ERC20.json b/build/contracts/ERC20.json index 4a746ba..99f2709 100644 --- a/build/contracts/ERC20.json +++ b/build/contracts/ERC20.json @@ -186,7 +186,7 @@ "absolutePath": "zeppelin-solidity/contracts/token/ERC20.sol", "exportedSymbols": { "ERC20": [ - 2192 + 2215 ] } }, @@ -200,39 +200,39 @@ ".18" ] }, - "id": 2151, + "id": 2174, "name": "PragmaDirective", "src": "0:24:14" }, { "attributes": { - "SourceUnit": 2222, + "SourceUnit": 2245, "absolutePath": "zeppelin-solidity/contracts/token/ERC20Basic.sol", "file": "./ERC20Basic.sol", - "scope": 2193, + "scope": 2216, "symbolAliases": [ null ], "unitAlias": "" }, - "id": 2152, + "id": 2175, "name": "ImportDirective", "src": "27:26:14" }, { "attributes": { "contractDependencies": [ - 2221 + 2244 ], "contractKind": "contract", "documentation": "@title ERC20 interface\n@dev see https://github.com/ethereum/EIPs/issues/20", "fullyImplemented": false, "linearizedBaseContracts": [ - 2192, - 2221 + 2215, + 2244 ], "name": "ERC20", - "scope": 2193 + "scope": 2216 }, "children": [ { @@ -246,15 +246,15 @@ "attributes": { "contractScope": null, "name": "ERC20Basic", - "referencedDeclaration": 2221, + "referencedDeclaration": 2244, "type": "contract ERC20Basic" }, - "id": 2153, + "id": 2176, "name": "UserDefinedTypeName", "src": "163:10:14" } ], - "id": 2154, + "id": 2177, "name": "InheritanceSpecifier", "src": "163:10:14" }, @@ -269,7 +269,7 @@ ], "name": "allowance", "payable": false, - "scope": 2192, + "scope": 2215, "stateMutability": "view", "superFunction": null, "visibility": "public" @@ -281,7 +281,7 @@ "attributes": { "constant": false, "name": "owner", - "scope": 2163, + "scope": 2186, "stateVariable": false, "storageLocation": "default", "type": "address", @@ -294,12 +294,12 @@ "name": "address", "type": "address" }, - "id": 2155, + "id": 2178, "name": "ElementaryTypeName", "src": "197:7:14" } ], - "id": 2156, + "id": 2179, "name": "VariableDeclaration", "src": "197:13:14" }, @@ -307,7 +307,7 @@ "attributes": { "constant": false, "name": "spender", - "scope": 2163, + "scope": 2186, "stateVariable": false, "storageLocation": "default", "type": "address", @@ -320,17 +320,17 @@ "name": "address", "type": "address" }, - "id": 2157, + "id": 2180, "name": "ElementaryTypeName", "src": "212:7:14" } ], - "id": 2158, + "id": 2181, "name": "VariableDeclaration", "src": "212:15:14" } ], - "id": 2159, + "id": 2182, "name": "ParameterList", "src": "196:32:14" }, @@ -340,7 +340,7 @@ "attributes": { "constant": false, "name": "", - "scope": 2163, + "scope": 2186, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -353,22 +353,22 @@ "name": "uint256", "type": "uint256" }, - "id": 2160, + "id": 2183, "name": "ElementaryTypeName", "src": "250:7:14" } ], - "id": 2161, + "id": 2184, "name": "VariableDeclaration", "src": "250:7:14" } ], - "id": 2162, + "id": 2185, "name": "ParameterList", "src": "249:9:14" } ], - "id": 2163, + "id": 2186, "name": "FunctionDefinition", "src": "178:81:14" }, @@ -383,7 +383,7 @@ ], "name": "transferFrom", "payable": false, - "scope": 2192, + "scope": 2215, "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" @@ -395,7 +395,7 @@ "attributes": { "constant": false, "name": "from", - "scope": 2174, + "scope": 2197, "stateVariable": false, "storageLocation": "default", "type": "address", @@ -408,12 +408,12 @@ "name": "address", "type": "address" }, - "id": 2164, + "id": 2187, "name": "ElementaryTypeName", "src": "284:7:14" } ], - "id": 2165, + "id": 2188, "name": "VariableDeclaration", "src": "284:12:14" }, @@ -421,7 +421,7 @@ "attributes": { "constant": false, "name": "to", - "scope": 2174, + "scope": 2197, "stateVariable": false, "storageLocation": "default", "type": "address", @@ -434,12 +434,12 @@ "name": "address", "type": "address" }, - "id": 2166, + "id": 2189, "name": "ElementaryTypeName", "src": "298:7:14" } ], - "id": 2167, + "id": 2190, "name": "VariableDeclaration", "src": "298:10:14" }, @@ -447,7 +447,7 @@ "attributes": { "constant": false, "name": "value", - "scope": 2174, + "scope": 2197, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -460,17 +460,17 @@ "name": "uint256", "type": "uint256" }, - "id": 2168, + "id": 2191, "name": "ElementaryTypeName", "src": "310:7:14" } ], - "id": 2169, + "id": 2192, "name": "VariableDeclaration", "src": "310:13:14" } ], - "id": 2170, + "id": 2193, "name": "ParameterList", "src": "283:41:14" }, @@ -480,7 +480,7 @@ "attributes": { "constant": false, "name": "", - "scope": 2174, + "scope": 2197, "stateVariable": false, "storageLocation": "default", "type": "bool", @@ -493,22 +493,22 @@ "name": "bool", "type": "bool" }, - "id": 2171, + "id": 2194, "name": "ElementaryTypeName", "src": "341:4:14" } ], - "id": 2172, + "id": 2195, "name": "VariableDeclaration", "src": "341:4:14" } ], - "id": 2173, + "id": 2196, "name": "ParameterList", "src": "340:6:14" } ], - "id": 2174, + "id": 2197, "name": "FunctionDefinition", "src": "262:85:14" }, @@ -523,7 +523,7 @@ ], "name": "approve", "payable": false, - "scope": 2192, + "scope": 2215, "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" @@ -535,7 +535,7 @@ "attributes": { "constant": false, "name": "spender", - "scope": 2183, + "scope": 2206, "stateVariable": false, "storageLocation": "default", "type": "address", @@ -548,12 +548,12 @@ "name": "address", "type": "address" }, - "id": 2175, + "id": 2198, "name": "ElementaryTypeName", "src": "367:7:14" } ], - "id": 2176, + "id": 2199, "name": "VariableDeclaration", "src": "367:15:14" }, @@ -561,7 +561,7 @@ "attributes": { "constant": false, "name": "value", - "scope": 2183, + "scope": 2206, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -574,17 +574,17 @@ "name": "uint256", "type": "uint256" }, - "id": 2177, + "id": 2200, "name": "ElementaryTypeName", "src": "384:7:14" } ], - "id": 2178, + "id": 2201, "name": "VariableDeclaration", "src": "384:13:14" } ], - "id": 2179, + "id": 2202, "name": "ParameterList", "src": "366:32:14" }, @@ -594,7 +594,7 @@ "attributes": { "constant": false, "name": "", - "scope": 2183, + "scope": 2206, "stateVariable": false, "storageLocation": "default", "type": "bool", @@ -607,22 +607,22 @@ "name": "bool", "type": "bool" }, - "id": 2180, + "id": 2203, "name": "ElementaryTypeName", "src": "415:4:14" } ], - "id": 2181, + "id": 2204, "name": "VariableDeclaration", "src": "415:4:14" } ], - "id": 2182, + "id": 2205, "name": "ParameterList", "src": "414:6:14" } ], - "id": 2183, + "id": 2206, "name": "FunctionDefinition", "src": "350:71:14" }, @@ -639,7 +639,7 @@ "constant": false, "indexed": true, "name": "owner", - "scope": 2191, + "scope": 2214, "stateVariable": false, "storageLocation": "default", "type": "address", @@ -652,12 +652,12 @@ "name": "address", "type": "address" }, - "id": 2184, + "id": 2207, "name": "ElementaryTypeName", "src": "439:7:14" } ], - "id": 2185, + "id": 2208, "name": "VariableDeclaration", "src": "439:21:14" }, @@ -666,7 +666,7 @@ "constant": false, "indexed": true, "name": "spender", - "scope": 2191, + "scope": 2214, "stateVariable": false, "storageLocation": "default", "type": "address", @@ -679,12 +679,12 @@ "name": "address", "type": "address" }, - "id": 2186, + "id": 2209, "name": "ElementaryTypeName", "src": "462:7:14" } ], - "id": 2187, + "id": 2210, "name": "VariableDeclaration", "src": "462:23:14" }, @@ -693,7 +693,7 @@ "constant": false, "indexed": false, "name": "value", - "scope": 2191, + "scope": 2214, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -706,32 +706,32 @@ "name": "uint256", "type": "uint256" }, - "id": 2188, + "id": 2211, "name": "ElementaryTypeName", "src": "487:7:14" } ], - "id": 2189, + "id": 2212, "name": "VariableDeclaration", "src": "487:13:14" } ], - "id": 2190, + "id": 2213, "name": "ParameterList", "src": "438:63:14" } ], - "id": 2191, + "id": 2214, "name": "EventDefinition", "src": "424:78:14" } ], - "id": 2192, + "id": 2215, "name": "ContractDefinition", "src": "145:359:14" } ], - "id": 2193, + "id": 2216, "name": "SourceUnit", "src": "0:505:14" }, @@ -741,5 +741,5 @@ }, "networks": {}, "schemaVersion": "1.0.1", - "updatedAt": "2018-01-14T11:06:54.646Z" + "updatedAt": "2018-01-16T07:16:25.776Z" } \ No newline at end of file diff --git a/build/contracts/ERC20Basic.json b/build/contracts/ERC20Basic.json index 30ef352..7dfd4ad 100644 --- a/build/contracts/ERC20Basic.json +++ b/build/contracts/ERC20Basic.json @@ -91,7 +91,7 @@ "absolutePath": "zeppelin-solidity/contracts/token/ERC20Basic.sol", "exportedSymbols": { "ERC20Basic": [ - 2221 + 2244 ] } }, @@ -105,7 +105,7 @@ ".18" ] }, - "id": 2194, + "id": 2217, "name": "PragmaDirective", "src": "0:24:15" }, @@ -121,17 +121,17 @@ "documentation": "@title ERC20Basic\n@dev Simpler version of ERC20 interface\n@dev see https://github.com/ethereum/EIPs/issues/179", "fullyImplemented": false, "linearizedBaseContracts": [ - 2221 + 2244 ], "name": "ERC20Basic", - "scope": 2222 + "scope": 2245 }, "children": [ { "attributes": { "constant": false, "name": "totalSupply", - "scope": 2221, + "scope": 2244, "stateVariable": true, "storageLocation": "default", "type": "uint256", @@ -144,12 +144,12 @@ "name": "uint256", "type": "uint256" }, - "id": 2195, + "id": 2218, "name": "ElementaryTypeName", "src": "179:7:15" } ], - "id": 2196, + "id": 2219, "name": "VariableDeclaration", "src": "179:26:15" }, @@ -164,7 +164,7 @@ ], "name": "balanceOf", "payable": false, - "scope": 2221, + "scope": 2244, "stateMutability": "view", "superFunction": null, "visibility": "public" @@ -176,7 +176,7 @@ "attributes": { "constant": false, "name": "who", - "scope": 2203, + "scope": 2226, "stateVariable": false, "storageLocation": "default", "type": "address", @@ -189,17 +189,17 @@ "name": "address", "type": "address" }, - "id": 2197, + "id": 2220, "name": "ElementaryTypeName", "src": "228:7:15" } ], - "id": 2198, + "id": 2221, "name": "VariableDeclaration", "src": "228:11:15" } ], - "id": 2199, + "id": 2222, "name": "ParameterList", "src": "227:13:15" }, @@ -209,7 +209,7 @@ "attributes": { "constant": false, "name": "", - "scope": 2203, + "scope": 2226, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -222,22 +222,22 @@ "name": "uint256", "type": "uint256" }, - "id": 2200, + "id": 2223, "name": "ElementaryTypeName", "src": "262:7:15" } ], - "id": 2201, + "id": 2224, "name": "VariableDeclaration", "src": "262:7:15" } ], - "id": 2202, + "id": 2225, "name": "ParameterList", "src": "261:9:15" } ], - "id": 2203, + "id": 2226, "name": "FunctionDefinition", "src": "209:62:15" }, @@ -252,7 +252,7 @@ ], "name": "transfer", "payable": false, - "scope": 2221, + "scope": 2244, "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" @@ -264,7 +264,7 @@ "attributes": { "constant": false, "name": "to", - "scope": 2212, + "scope": 2235, "stateVariable": false, "storageLocation": "default", "type": "address", @@ -277,12 +277,12 @@ "name": "address", "type": "address" }, - "id": 2204, + "id": 2227, "name": "ElementaryTypeName", "src": "292:7:15" } ], - "id": 2205, + "id": 2228, "name": "VariableDeclaration", "src": "292:10:15" }, @@ -290,7 +290,7 @@ "attributes": { "constant": false, "name": "value", - "scope": 2212, + "scope": 2235, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -303,17 +303,17 @@ "name": "uint256", "type": "uint256" }, - "id": 2206, + "id": 2229, "name": "ElementaryTypeName", "src": "304:7:15" } ], - "id": 2207, + "id": 2230, "name": "VariableDeclaration", "src": "304:13:15" } ], - "id": 2208, + "id": 2231, "name": "ParameterList", "src": "291:27:15" }, @@ -323,7 +323,7 @@ "attributes": { "constant": false, "name": "", - "scope": 2212, + "scope": 2235, "stateVariable": false, "storageLocation": "default", "type": "bool", @@ -336,22 +336,22 @@ "name": "bool", "type": "bool" }, - "id": 2209, + "id": 2232, "name": "ElementaryTypeName", "src": "335:4:15" } ], - "id": 2210, + "id": 2233, "name": "VariableDeclaration", "src": "335:4:15" } ], - "id": 2211, + "id": 2234, "name": "ParameterList", "src": "334:6:15" } ], - "id": 2212, + "id": 2235, "name": "FunctionDefinition", "src": "274:67:15" }, @@ -368,7 +368,7 @@ "constant": false, "indexed": true, "name": "from", - "scope": 2220, + "scope": 2243, "stateVariable": false, "storageLocation": "default", "type": "address", @@ -381,12 +381,12 @@ "name": "address", "type": "address" }, - "id": 2213, + "id": 2236, "name": "ElementaryTypeName", "src": "359:7:15" } ], - "id": 2214, + "id": 2237, "name": "VariableDeclaration", "src": "359:20:15" }, @@ -395,7 +395,7 @@ "constant": false, "indexed": true, "name": "to", - "scope": 2220, + "scope": 2243, "stateVariable": false, "storageLocation": "default", "type": "address", @@ -408,12 +408,12 @@ "name": "address", "type": "address" }, - "id": 2215, + "id": 2238, "name": "ElementaryTypeName", "src": "381:7:15" } ], - "id": 2216, + "id": 2239, "name": "VariableDeclaration", "src": "381:18:15" }, @@ -422,7 +422,7 @@ "constant": false, "indexed": false, "name": "value", - "scope": 2220, + "scope": 2243, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -435,32 +435,32 @@ "name": "uint256", "type": "uint256" }, - "id": 2217, + "id": 2240, "name": "ElementaryTypeName", "src": "401:7:15" } ], - "id": 2218, + "id": 2241, "name": "VariableDeclaration", "src": "401:13:15" } ], - "id": 2219, + "id": 2242, "name": "ParameterList", "src": "358:57:15" } ], - "id": 2220, + "id": 2243, "name": "EventDefinition", "src": "344:72:15" } ], - "id": 2221, + "id": 2244, "name": "ContractDefinition", "src": "155:263:15" } ], - "id": 2222, + "id": 2245, "name": "SourceUnit", "src": "0:419:15" }, @@ -470,5 +470,5 @@ }, "networks": {}, "schemaVersion": "1.0.1", - "updatedAt": "2018-01-14T11:06:54.647Z" + "updatedAt": "2018-01-16T07:16:25.776Z" } \ No newline at end of file diff --git a/build/contracts/Holder.json b/build/contracts/Holder.json index 72967f9..a1b4ed7 100644 --- a/build/contracts/Holder.json +++ b/build/contracts/Holder.json @@ -171,7 +171,12 @@ } ], "name": "rejectCredential", - "outputs": [], + "outputs": [ + { + "name": "success", + "type": "bool" + } + ], "payable": false, "stateMutability": "nonpayable", "type": "function" @@ -425,18 +430,18 @@ "type": "event" } ], - "bytecode": "0x6060604052341561000f57600080fd5b6040516020806123d483398101604052808051906020019091905050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506123598061007b6000396000f3006060604052600436106100db576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063064c4d6c146100e057806317a43191146101095780631ddb6af6146101305780634e3943e7146102b0578063567f77931461042a5780636bcdaa331461045357806392c54daf14610496578063a8d97e5c146104e7578063b193772a1461050e578063b93d28eb1461054d578063bfd9008b14610586578063c4566bdd146105c5578063d1be4883146105fe578063e2b27eb014610869578063e534155d146108a8575b600080fd5b34156100eb57600080fd5b6100f36108fd565b6040518082815260200191505060405180910390f35b341561011457600080fd5b61012e60048080356000191690602001909190505061090d565b005b341561013b57600080fd5b610292600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610aab565b60405180826000191660001916815260200191505060405180910390f35b34156102bb57600080fd5b610428600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001909190803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803560001916906020019091905050610ca1565b005b341561043557600080fd5b61043d61108b565b6040518082815260200191505060405180910390f35b341561045e57600080fd5b610478600480803560001916906020019091905050611098565b60405180826000191660001916815260200191505060405180910390f35b34156104a157600080fd5b6104cd600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611490565b604051808215151515815260200191505060405180910390f35b34156104f257600080fd5b61050c6004808035600019169060200190919050506114b0565b005b341561051957600080fd5b61052f600480803590602001909190505061161f565b60405180826000191660001916815260200191505060405180910390f35b341561055857600080fd5b610584600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611646565b005b341561059157600080fd5b6105ab600480803560001916906020019091905050611773565b604051808215151515815260200191505060405180910390f35b34156105d057600080fd5b6105fc600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506118a9565b005b341561060957600080fd5b6106236004808035600019169060200190919050506119d6565b604051808a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001806020018060200180602001806020018981526020018873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200187600019166000191681526020018615151515815260200185810385528d818151815260200191508051906020019080838360005b838110156106f15780820151818401526020810190506106d6565b50505050905090810190601f16801561071e5780820380516001836020036101000a031916815260200191505b5085810384528c818151815260200191508051906020019080838360005b8381101561075757808201518184015260208101905061073c565b50505050905090810190601f1680156107845780820380516001836020036101000a031916815260200191505b5085810383528b818151815260200191508051906020019080838360005b838110156107bd5780820151818401526020810190506107a2565b50505050905090810190601f1680156107ea5780820380516001836020036101000a031916815260200191505b5085810382528a818151815260200191508051906020019080838360005b83811015610823578082015181840152602081019050610808565b50505050905090810190601f1680156108505780820380516001836020036101000a031916815260200191505b509d505050505050505050505050505060405180910390f35b341561087457600080fd5b61088e600480803560001916906020019091905050611e36565b604051808215151515815260200191505060405180910390f35b34156108b357600080fd5b6108bb6120c6565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6000600160030180549050905090565b3360008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161490507f7fca019a0a52664785803f352d793a992f66c4affa261b3daf127976e7ad67998282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a18015156109dd57600080fd5b60016000016000846000191660001916815260200190815260200160002060080160009054906101000a900460ff16151515610a1857600080fd5b6001806000016000856000191660001916815260200190815260200160002060080160006101000a81548160ff021916908315150217905550600160020160008154809291906001900391905055507f978dbd4a5c69398988d130f73b479d634067339a3258c23bf271f12999b1c1138360405180826000191660001916815260200191505060405180910390a1505050565b6000868686868686604051808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140186805190602001908083835b602083101515610b295780518252602082019150602081019050602083039250610b04565b6001836020036101000a03801982511681845116808217855250505050505090500185805190602001908083835b602083101515610b7c5780518252602082019150602081019050602083039250610b57565b6001836020036101000a03801982511681845116808217855250505050505090500184805190602001908083835b602083101515610bcf5780518252602082019150602081019050602083039250610baa565b6001836020036101000a03801982511681845116808217855250505050505090500183805190602001908083835b602083101515610c225780518252602082019150602081019050602083039250610bfd565b6001836020036101000a0380198251168184511680821785525050505050509050018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014019650505050505050604051809103902090509695505050505050565b337f2bf8ea5a40db67784aa965ddf3e37384c79dbaf6178e1c7b8e3be19f22f84b9c81604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515610d5d57600080fd5b60a06040519081016040528060a0604051908101604052808c73ffffffffffffffffffffffffffffffffffffffff1681526020018b81526020018a81526020018981526020018881525081526020018581526020018473ffffffffffffffffffffffffffffffffffffffff168152602001836000191681526020016000151581525060016000016000846000191660001916815260200190815260200160002060008201518160000160008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506020820151816001019080519060200190610e699291906120eb565b506040820151816002019080519060200190610e869291906120eb565b506060820151816003019080519060200190610ea39291906120eb565b506080820151816004019080519060200190610ec09291906120eb565b5050506020820151816005015560408201518160060160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506060820151816007019060001916905560808201518160080160006101000a81548160ff0219169083151502179055509050506001806003018054806001018281610f5f919061216b565b9160005260206000209001600085909190915090600019169055036001800160008460001916600019168152602001908152602001600020819055506001600201600081548092919060010191905055507fed60274040809c2e0c3199910a8fc3317c525cf63a383939cd93936d01192a0a878a60405180806020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828103825284818151815260200191508051906020019080838360005b8381101561104557808201518184015260208101905061102a565b50505050905090810190601f1680156110725780820380516001836020036101000a031916815260200191505b50935050505060405180910390a1505050505050505050565b6000600160020154905090565b60006110a2612197565b60016000016000846000191660001916815260200190815260200160002060a060405190810160405290816000820160a060405190810160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111cc5780601f106111a1576101008083540402835291602001916111cc565b820191906000526020600020905b8154815290600101906020018083116111af57829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561126e5780601f106112435761010080835404028352916020019161126e565b820191906000526020600020905b81548152906001019060200180831161125157829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156113105780601f106112e557610100808354040283529160200191611310565b820191906000526020600020905b8154815290600101906020018083116112f357829003601f168201915b50505050508152602001600482018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156113b25780601f10611387576101008083540402835291602001916113b2565b820191906000526020600020905b81548152906001019060200180831161139557829003601f168201915b5050505050815250508152602001600582015481526020016006820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016007820154600019166000191681526020016008820160009054906101000a900460ff16151515158152505090506114888160000151600001518260000151602001518360000151604001518460000151606001518560000151608001518660400151610aab565b915050919050565b60056020528060005260406000206000915054906101000a900460ff1681565b3360008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161490507f7fca019a0a52664785803f352d793a992f66c4affa261b3daf127976e7ad67998282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a180151561158057600080fd5b60016000016000846000191660001916815260200190815260200160002060080160009054906101000a900460ff161515156115bb57600080fd5b6115c483611e36565b50600160020160008154809291906001900391905055507f3d6d2e20f8295ac74aaf9f1baed466127668c2875ea803edb9fdef728c58116f8360405180826000191660001916815260200191505060405180910390a1505050565b600060016003018281548110151561163357fe5b9060005260206000209001549050919050565b3360008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161490507f7fca019a0a52664785803f352d793a992f66c4affa261b3daf127976e7ad67998282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a180151561171657600080fd5b6000600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550505050565b60003360008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161490507f7fca019a0a52664785803f352d793a992f66c4affa261b3daf127976e7ad67998282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a180151561184557600080fd5b61184e84611e36565b92507f53c822192afd4ec78307b42da85bc3b1afa0e4536e82c2bcfb6bb8e18a6c6553846001600301805490506040518083600019166000191681526020018281526020019250505060405180910390a18292505050919050565b3360008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161490507f7fca019a0a52664785803f352d793a992f66c4affa261b3daf127976e7ad67998282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a180151561197957600080fd5b6001600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550505050565b60006119e06121e9565b6119e86121e9565b6119f06121e9565b6119f86121e9565b600080600080611a06612197565b6000600160030180549050111515611a1d57600080fd5b600160000160008c6000191660001916815260200190815260200160002060a060405190810160405290816000820160a060405190810160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b475780601f10611b1c57610100808354040283529160200191611b47565b820191906000526020600020905b815481529060010190602001808311611b2a57829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611be95780601f10611bbe57610100808354040283529160200191611be9565b820191906000526020600020905b815481529060010190602001808311611bcc57829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611c8b5780601f10611c6057610100808354040283529160200191611c8b565b820191906000526020600020905b815481529060010190602001808311611c6e57829003601f168201915b50505050508152602001600482018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611d2d5780601f10611d0257610100808354040283529160200191611d2d565b820191906000526020600020905b815481529060010190602001808311611d1057829003601f168201915b5050505050815250508152602001600582015481526020016006820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016007820154600019166000191681526020016008820160009054906101000a900460ff16151515158152505090508060000151600001518160000151602001518260000151604001518360000151606001518460000151608001518560200151866040015187606001518860800151879750869650859550849450995099509950995099509950995099509950509193959799909294969850565b60008060006001600001600085600019166000191681526020019081526020016000206000808201600080820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055600182016000611e9691906121fd565b600282016000611ea691906121fd565b600382016000611eb691906121fd565b600482016000611ec691906121fd565b505060058201600090556006820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905560078201600090556008820160006101000a81549060ff02191690555050600180016000856000191660001916815260200190815260200160002054915060016003016001806003018054905003815481101515611f5157fe5b90600052602060002090015490508160018001600083600019166000191681526020019081526020016000208190555080600160030183815481101515611f9457fe5b906000526020600020900181600019169055506001600301805480919060019003611fbf9190612245565b506001800160008560001916600019168152602001908152602001600020600090556001600001600085600019166000191681526020019081526020016000206000808201600080820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905560018201600061203c91906121fd565b60028201600061204c91906121fd565b60038201600061205c91906121fd565b60048201600061206c91906121fd565b505060058201600090556006820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905560078201600090556008820160006101000a81549060ff02191690555050600192505050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061212c57805160ff191683800117855561215a565b8280016001018555821561215a579182015b8281111561215957825182559160200191906001019061213e565b5b5090506121679190612271565b5090565b815481835581811511612192578183600052602060002091820191016121919190612296565b5b505050565b610120604051908101604052806121ac6122bb565b815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600080191681526020016000151581525090565b602060405190810160405280600081525090565b50805460018160011615610100020316600290046000825580601f106122235750612242565b601f0160209004906000526020600020908101906122419190612271565b5b50565b81548183558181151161226c5781836000526020600020918201910161226b9190612296565b5b505050565b61229391905b8082111561228f576000816000905550600101612277565b5090565b90565b6122b891905b808211156122b457600081600090555060010161229c565b5090565b90565b60a060405190810160405280600073ffffffffffffffffffffffffffffffffffffffff1681526020016122ec612319565b81526020016122f9612319565b8152602001612306612319565b8152602001612313612319565b81525090565b6020604051908101604052806000815250905600a165627a7a7230582040dff90256b7e313661c8168db41c895ced7375736f6ede852c134a2881c6a020029", - "deployedBytecode": "0x6060604052600436106100db576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063064c4d6c146100e057806317a43191146101095780631ddb6af6146101305780634e3943e7146102b0578063567f77931461042a5780636bcdaa331461045357806392c54daf14610496578063a8d97e5c146104e7578063b193772a1461050e578063b93d28eb1461054d578063bfd9008b14610586578063c4566bdd146105c5578063d1be4883146105fe578063e2b27eb014610869578063e534155d146108a8575b600080fd5b34156100eb57600080fd5b6100f36108fd565b6040518082815260200191505060405180910390f35b341561011457600080fd5b61012e60048080356000191690602001909190505061090d565b005b341561013b57600080fd5b610292600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610aab565b60405180826000191660001916815260200191505060405180910390f35b34156102bb57600080fd5b610428600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001909190803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803560001916906020019091905050610ca1565b005b341561043557600080fd5b61043d61108b565b6040518082815260200191505060405180910390f35b341561045e57600080fd5b610478600480803560001916906020019091905050611098565b60405180826000191660001916815260200191505060405180910390f35b34156104a157600080fd5b6104cd600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611490565b604051808215151515815260200191505060405180910390f35b34156104f257600080fd5b61050c6004808035600019169060200190919050506114b0565b005b341561051957600080fd5b61052f600480803590602001909190505061161f565b60405180826000191660001916815260200191505060405180910390f35b341561055857600080fd5b610584600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611646565b005b341561059157600080fd5b6105ab600480803560001916906020019091905050611773565b604051808215151515815260200191505060405180910390f35b34156105d057600080fd5b6105fc600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506118a9565b005b341561060957600080fd5b6106236004808035600019169060200190919050506119d6565b604051808a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001806020018060200180602001806020018981526020018873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200187600019166000191681526020018615151515815260200185810385528d818151815260200191508051906020019080838360005b838110156106f15780820151818401526020810190506106d6565b50505050905090810190601f16801561071e5780820380516001836020036101000a031916815260200191505b5085810384528c818151815260200191508051906020019080838360005b8381101561075757808201518184015260208101905061073c565b50505050905090810190601f1680156107845780820380516001836020036101000a031916815260200191505b5085810383528b818151815260200191508051906020019080838360005b838110156107bd5780820151818401526020810190506107a2565b50505050905090810190601f1680156107ea5780820380516001836020036101000a031916815260200191505b5085810382528a818151815260200191508051906020019080838360005b83811015610823578082015181840152602081019050610808565b50505050905090810190601f1680156108505780820380516001836020036101000a031916815260200191505b509d505050505050505050505050505060405180910390f35b341561087457600080fd5b61088e600480803560001916906020019091905050611e36565b604051808215151515815260200191505060405180910390f35b34156108b357600080fd5b6108bb6120c6565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6000600160030180549050905090565b3360008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161490507f7fca019a0a52664785803f352d793a992f66c4affa261b3daf127976e7ad67998282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a18015156109dd57600080fd5b60016000016000846000191660001916815260200190815260200160002060080160009054906101000a900460ff16151515610a1857600080fd5b6001806000016000856000191660001916815260200190815260200160002060080160006101000a81548160ff021916908315150217905550600160020160008154809291906001900391905055507f978dbd4a5c69398988d130f73b479d634067339a3258c23bf271f12999b1c1138360405180826000191660001916815260200191505060405180910390a1505050565b6000868686868686604051808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140186805190602001908083835b602083101515610b295780518252602082019150602081019050602083039250610b04565b6001836020036101000a03801982511681845116808217855250505050505090500185805190602001908083835b602083101515610b7c5780518252602082019150602081019050602083039250610b57565b6001836020036101000a03801982511681845116808217855250505050505090500184805190602001908083835b602083101515610bcf5780518252602082019150602081019050602083039250610baa565b6001836020036101000a03801982511681845116808217855250505050505090500183805190602001908083835b602083101515610c225780518252602082019150602081019050602083039250610bfd565b6001836020036101000a0380198251168184511680821785525050505050509050018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014019650505050505050604051809103902090509695505050505050565b337f2bf8ea5a40db67784aa965ddf3e37384c79dbaf6178e1c7b8e3be19f22f84b9c81604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515610d5d57600080fd5b60a06040519081016040528060a0604051908101604052808c73ffffffffffffffffffffffffffffffffffffffff1681526020018b81526020018a81526020018981526020018881525081526020018581526020018473ffffffffffffffffffffffffffffffffffffffff168152602001836000191681526020016000151581525060016000016000846000191660001916815260200190815260200160002060008201518160000160008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506020820151816001019080519060200190610e699291906120eb565b506040820151816002019080519060200190610e869291906120eb565b506060820151816003019080519060200190610ea39291906120eb565b506080820151816004019080519060200190610ec09291906120eb565b5050506020820151816005015560408201518160060160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506060820151816007019060001916905560808201518160080160006101000a81548160ff0219169083151502179055509050506001806003018054806001018281610f5f919061216b565b9160005260206000209001600085909190915090600019169055036001800160008460001916600019168152602001908152602001600020819055506001600201600081548092919060010191905055507fed60274040809c2e0c3199910a8fc3317c525cf63a383939cd93936d01192a0a878a60405180806020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828103825284818151815260200191508051906020019080838360005b8381101561104557808201518184015260208101905061102a565b50505050905090810190601f1680156110725780820380516001836020036101000a031916815260200191505b50935050505060405180910390a1505050505050505050565b6000600160020154905090565b60006110a2612197565b60016000016000846000191660001916815260200190815260200160002060a060405190810160405290816000820160a060405190810160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111cc5780601f106111a1576101008083540402835291602001916111cc565b820191906000526020600020905b8154815290600101906020018083116111af57829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561126e5780601f106112435761010080835404028352916020019161126e565b820191906000526020600020905b81548152906001019060200180831161125157829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156113105780601f106112e557610100808354040283529160200191611310565b820191906000526020600020905b8154815290600101906020018083116112f357829003601f168201915b50505050508152602001600482018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156113b25780601f10611387576101008083540402835291602001916113b2565b820191906000526020600020905b81548152906001019060200180831161139557829003601f168201915b5050505050815250508152602001600582015481526020016006820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016007820154600019166000191681526020016008820160009054906101000a900460ff16151515158152505090506114888160000151600001518260000151602001518360000151604001518460000151606001518560000151608001518660400151610aab565b915050919050565b60056020528060005260406000206000915054906101000a900460ff1681565b3360008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161490507f7fca019a0a52664785803f352d793a992f66c4affa261b3daf127976e7ad67998282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a180151561158057600080fd5b60016000016000846000191660001916815260200190815260200160002060080160009054906101000a900460ff161515156115bb57600080fd5b6115c483611e36565b50600160020160008154809291906001900391905055507f3d6d2e20f8295ac74aaf9f1baed466127668c2875ea803edb9fdef728c58116f8360405180826000191660001916815260200191505060405180910390a1505050565b600060016003018281548110151561163357fe5b9060005260206000209001549050919050565b3360008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161490507f7fca019a0a52664785803f352d793a992f66c4affa261b3daf127976e7ad67998282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a180151561171657600080fd5b6000600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550505050565b60003360008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161490507f7fca019a0a52664785803f352d793a992f66c4affa261b3daf127976e7ad67998282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a180151561184557600080fd5b61184e84611e36565b92507f53c822192afd4ec78307b42da85bc3b1afa0e4536e82c2bcfb6bb8e18a6c6553846001600301805490506040518083600019166000191681526020018281526020019250505060405180910390a18292505050919050565b3360008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161490507f7fca019a0a52664785803f352d793a992f66c4affa261b3daf127976e7ad67998282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a180151561197957600080fd5b6001600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550505050565b60006119e06121e9565b6119e86121e9565b6119f06121e9565b6119f86121e9565b600080600080611a06612197565b6000600160030180549050111515611a1d57600080fd5b600160000160008c6000191660001916815260200190815260200160002060a060405190810160405290816000820160a060405190810160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b475780601f10611b1c57610100808354040283529160200191611b47565b820191906000526020600020905b815481529060010190602001808311611b2a57829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611be95780601f10611bbe57610100808354040283529160200191611be9565b820191906000526020600020905b815481529060010190602001808311611bcc57829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611c8b5780601f10611c6057610100808354040283529160200191611c8b565b820191906000526020600020905b815481529060010190602001808311611c6e57829003601f168201915b50505050508152602001600482018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611d2d5780601f10611d0257610100808354040283529160200191611d2d565b820191906000526020600020905b815481529060010190602001808311611d1057829003601f168201915b5050505050815250508152602001600582015481526020016006820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016007820154600019166000191681526020016008820160009054906101000a900460ff16151515158152505090508060000151600001518160000151602001518260000151604001518360000151606001518460000151608001518560200151866040015187606001518860800151879750869650859550849450995099509950995099509950995099509950509193959799909294969850565b60008060006001600001600085600019166000191681526020019081526020016000206000808201600080820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055600182016000611e9691906121fd565b600282016000611ea691906121fd565b600382016000611eb691906121fd565b600482016000611ec691906121fd565b505060058201600090556006820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905560078201600090556008820160006101000a81549060ff02191690555050600180016000856000191660001916815260200190815260200160002054915060016003016001806003018054905003815481101515611f5157fe5b90600052602060002090015490508160018001600083600019166000191681526020019081526020016000208190555080600160030183815481101515611f9457fe5b906000526020600020900181600019169055506001600301805480919060019003611fbf9190612245565b506001800160008560001916600019168152602001908152602001600020600090556001600001600085600019166000191681526020019081526020016000206000808201600080820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905560018201600061203c91906121fd565b60028201600061204c91906121fd565b60038201600061205c91906121fd565b60048201600061206c91906121fd565b505060058201600090556006820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905560078201600090556008820160006101000a81549060ff02191690555050600192505050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061212c57805160ff191683800117855561215a565b8280016001018555821561215a579182015b8281111561215957825182559160200191906001019061213e565b5b5090506121679190612271565b5090565b815481835581811511612192578183600052602060002091820191016121919190612296565b5b505050565b610120604051908101604052806121ac6122bb565b815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600080191681526020016000151581525090565b602060405190810160405280600081525090565b50805460018160011615610100020316600290046000825580601f106122235750612242565b601f0160209004906000526020600020908101906122419190612271565b5b50565b81548183558181151161226c5781836000526020600020918201910161226b9190612296565b5b505050565b61229391905b8082111561228f576000816000905550600101612277565b5090565b90565b6122b891905b808211156122b457600081600090555060010161229c565b5090565b90565b60a060405190810160405280600073ffffffffffffffffffffffffffffffffffffffff1681526020016122ec612319565b81526020016122f9612319565b8152602001612306612319565b8152602001612313612319565b81525090565b6020604051908101604052806000815250905600a165627a7a7230582040dff90256b7e313661c8168db41c895ced7375736f6ede852c134a2881c6a020029", - "sourceMap": "102:5927:3:-;;;691:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;750:7;741:6;;:16;;;;;;;;;;;;;;;;;;691:73;102:5927;;;;;;", - "deployedSourceMap": "102:5927:3:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5267:121;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2633:288;;;;;;;;;;;;;;;;;;;;;;;;;;;;;103:376:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1867:710:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5441:134;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5581:446;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;639:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2974:261;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5098:124;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1599;;;;;;;;;;;;;;;;;;;;;;;;;;;;3335:237;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1432:120;;;;;;;;;;;;;;;;;;;;;;;;;;;;4229:723;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3578:553:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;203:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5267:121;5325:10;5354:15;:20;;:27;;;;5347:34;;5267:121;:::o;2633:288::-;2687:10;988:17;1020:6;;;;;;;;;;;1009:17;;:7;:17;;;988:39;;1037;1054:7;1063:12;1037:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1094:12;1086:21;;;;;;;;2725:15;:27;;:36;2753:7;2725:36;;;;;;;;;;;;;;;;;:43;;;;;;;;;;;;2724:44;2716:53;;;;;;;;2825:4;2779:15;:27;;:36;2807:7;2779:36;;;;;;;;;;;;;;;;;:43;;;:50;;;;;;;;;;;;;;;;;;2839:15;:33;;;:35;;;;;;;;;;;;;;2884:30;2906:7;2884:30;;;;;;;;;;;;;;;;;;;;;;;;2633:288;;;:::o;103:376:1:-;287:13;344:6;366:11;393:4;413:5;434:7;457:9;319:155;;;;;;;;;;;;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:2;51:6;36:153;;;182:3;176:5;171:3;164:6;98:2;93:3;89;82:19;;123:2;118:3;114;107:19;;148:2;143:3;139;132:19;;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;36:153;66:2;61:3;58:2;51:6;36:153;;;182:3;176:5;171:3;164:6;98:2;93:3;89;82:19;;123:2;118:3;114;107:19;;148:2;143:3;139;132:19;;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;36:153;66:2;61:3;58:2;51:6;36:153;;;182:3;176:5;171:3;164:6;98:2;93:3;89;82:19;;123:2;118:3;114;107:19;;148:2;143:3;139;132:19;;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;36:153;66:2;61:3;58:2;51:6;36:153;;;182:3;176:5;171:3;164:6;98:2;93:3;89;82:19;;123:2;118:3;114;107:19;;148:2;143:3;139;132:19;;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;312:162:1;;103:376;;;;;;;;:::o;1867:710:3:-;2113:10;1301:24;1317:7;1301:24;;;;;;;;;;;;;;;;;;;;;;1343:14;:23;1358:7;1343:23;;;;;;;;;;;;;;;;;;;;;;;;;1335:32;;;;;;;;2178:219;;;;;;;;;2219:66;;;;;;;;;2238:7;2219:66;;;;;;2247:12;2219:66;;;;2261:5;2219:66;;;;2268:6;2219:66;;;;2276:8;2219:66;;;2178:219;;;;2303:8;2178:219;;;;2329:10;2178:219;;;;;;2357:7;2178:219;;;;;;;2382:5;2178:219;;;;;2139:15;:27;;:36;2167:7;2139:36;;;;;;;;;;;;;;;;;:258;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2478:1;2443:15;:20;;:34;;;;;;;;;;;:::i;:::-;;;;;;;;;;2469:7;2443:34;;;;;;;;;;;:36;2407:15;:24;;:33;2432:7;2407:33;;;;;;;;;;;;;;;;;:72;;;;2489:15;:33;;;:35;;;;;;;;;;;;;2534:36;2555:5;2562:7;2534:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1867:710:3;;;;;;;;;:::o;5441:134::-;5506:10;5535:15;:33;;;5528:40;;5441:134;:::o;5581:446::-;5648:15;5675:41;;:::i;:::-;5719:15;:27;;:36;5747:7;5719:36;;;;;;;;;;;;;;;;;5675:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5772:248;5802:10;:16;;;:23;;;5839:10;:16;;;:28;;;5881:10;:16;;;:21;;;5916:10;:16;;;:22;;;5952:10;:16;;;:24;;;5990:10;:20;;;5772:16;:248::i;:::-;5765:255;;5581:446;;;;:::o;639:45::-;;;;;;;;;;;;;;;;;;;;;;:::o;2974:261::-;3028:10;988:17;1020:6;;;;;;;;;;;1009:17;;:7;:17;;;988:39;;1037;1054:7;1063:12;1037:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1094:12;1086:21;;;;;;;;3066:15;:27;;:36;3094:7;3066:36;;;;;;;;;;;;;;;;;:43;;;;;;;;;;;;3065:44;3057:53;;;;;;;;3120:26;3138:7;3120:17;:26::i;:::-;;3156:15;:33;;;:35;;;;;;;;;;;;;;3201:27;3220:7;3201:27;;;;;;;;;;;;;;;;;;;;;;;;2974:261;;;:::o;5098:124::-;5154:14;5187:15;:20;;5208:6;5187:28;;;;;;;;;;;;;;;;;;;5180:35;;5098:124;;;:::o;1599:::-;1663:10;988:17;1020:6;;;;;;;;;;;1009:17;;:7;:17;;;988:39;;1037;1054:7;1063:12;1037:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1094:12;1086:21;;;;;;;;1711:5;1685:14;:23;1700:7;1685:23;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;1599:124;;;:::o;3335:237::-;3416:12;3389:10;988:17;1020:6;;;;;;;;;;;1009:17;;:7;:17;;;988:39;;1037;1054:7;1063:12;1037:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1094:12;1086:21;;;;;;;;3450:26;3468:7;3450:17;:26::i;:::-;3440:36;;3486:55;3504:7;3513:15;:20;;:27;;;;3486:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3558:7;3551:14;;3335:237;;;;;:::o;1432:120::-;1493:10;988:17;1020:6;;;;;;;;;;;1009:17;;:7;:17;;;988:39;;1037;1054:7;1063:12;1037:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1094:12;1086:21;;;;;;;;1541:4;1515:14;:23;1530:7;1515:23;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;1432:120;;;:::o;4229:723::-;4304:15;4329:19;;:::i;:::-;4358:12;;:::i;:::-;4380:13;;:::i;:::-;4403:15;;:::i;:::-;4428:13;4451:18;4479:14;4503:12;4582:35;;:::i;:::-;4570:1;4540:15;:20;;:27;;;;:31;4532:40;;;;;;;;4620:15;:27;;:36;4648:7;4620:36;;;;;;;;;;;;;;;;;4582:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4687:4;:10;;;:17;;;4718:4;:10;;;:22;;;4754:4;:10;;;:15;;;4783:4;:10;;;:16;;;4813:4;:10;;;:18;;;4845:4;:12;;;4871:4;:14;;;4899:4;:11;;;4924:4;:11;;;4666:279;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4229:723;;;;;;;;;;;;:::o;3578:553::-;3637:12;3714:16;3776:17;3668:15;:27;;:36;3696:7;3668:36;;;;;;;;;;;;;;;;;;3661:43;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3733:15;:24;;:33;3758:7;3733:33;;;;;;;;;;;;;;;;;;3714:52;;3796:15;:20;;3845:1;3817:15;:20;;:27;;;;:29;3796:51;;;;;;;;;;;;;;;;;;;3776:71;;3895:11;3857:15;:24;;:35;3882:9;3857:35;;;;;;;;;;;;;;;;;:49;;;;3952:9;3916:15;:20;;3937:11;3916:33;;;;;;;;;;;;;;;;;;:45;;;;;;;3971:15;:20;;:29;;;;;;;;;;;;:::i;:::-;;4017:15;:24;;:33;4042:7;4017:33;;;;;;;;;;;;;;;;;4010:40;;;4067:15;:27;;:36;4095:7;4067:36;;;;;;;;;;;;;;;;;;4060:43;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4120:4;4113:11;;3578:553;;;;;:::o;203:21::-;;;;;;;;;;;;;:::o;102:5927::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::o;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o", - "source": "pragma solidity ^0.4.17;\n\nimport \"BadgeLibrary/contracts/BadgeLibrary.sol\";\n\nimport \"./BFUtils.sol\";\n\ncontract Holder is BFUtils {\n\n /// @notice address where holder holds there badgeforce tokens\n address public holder;\n\n /// @notice mapping of name hash to credential\n /// @notice array of hash names\n struct CredentialVault {\n mapping (bytes32=>BadgeLibrary.Credential) credentials;\n mapping (bytes32=>uint) indexMap;\n uint numOfPendingCreds;\n bytes32[] keys;\n }\n\n /// @notice vault holding credentials\n CredentialVault credentialVault;\n\n /// @notice mapping of trusted issuers\n mapping (address=>bool) public trustedIssuers;\n\n function Holder(address _holder) public {\n holder = _holder;\n }\n\n event AuthorizeAttempt(address _actor, bool authorized);\n /// @notice make sure caller is the issuer that owns this contract because badgeforce tokens will be used\n modifier authorized(address _holder) {\n bool isAuthorized = (_holder == holder);\n AuthorizeAttempt(_holder, isAuthorized);\n require(isAuthorized);\n _;\n }\n\n event LogStoreAttempt(address _caller);\n /// @notice make sure issuer is trusted to store credentials on this contract\n modifier trusted(address _issuer) {\n LogStoreAttempt(_issuer);\n require(trustedIssuers[_issuer]);\n _;\n }\n\n /// @notice add a new trusted issuer\n function addTrustedIssuer(address _issuer) public authorized(msg.sender) {\n trustedIssuers[_issuer] = true;\n }\n\n /// @notice add a new trusted issuer\n function removeTrustedIssuer(address _issuer) public authorized(msg.sender) {\n trustedIssuers[_issuer] = false;\n }\n\n event NewPendingCredential(string _name, address _issuer);\n /**\n * @dev put a new credential inside the pending queue\n */\n function storeCredential(\n address _issuer,\n string _description,\n string _name,\n string _image,\n string _version,\n uint _expires,\n address _recipient,\n bytes32 _txnKey\n ) public trusted(msg.sender)\n {\n credentialVault.credentials[_txnKey] = BadgeLibrary.Credential(\n BadgeLibrary.Badge(_issuer, _description, _name, _image, _version),\n _expires,\n _recipient,\n _txnKey,\n false\n );\n credentialVault.indexMap[_txnKey] = credentialVault.keys.push(_txnKey)-1;\n credentialVault.numOfPendingCreds++;\n NewPendingCredential(_name, _issuer);\n }\n\n event NewCredentialAccepted(bytes32 _txnKey);\n function acceptCredential(bytes32 _txnKey) authorized(msg.sender) public {\n require(!credentialVault.credentials[_txnKey].active);\n credentialVault.credentials[_txnKey].active = true;\n credentialVault.numOfPendingCreds--;\n NewCredentialAccepted(_txnKey);\n }\n\n event CredentialRejected(bytes32 _txnKey);\n function rejectCredential(bytes32 _txnKey) authorized(msg.sender) public {\n require(!credentialVault.credentials[_txnKey].active);\n _deleteCredential(_txnKey);\n credentialVault.numOfPendingCreds--;\n CredentialRejected(_txnKey);\n }\n\n event CredentialDeleted(bytes32 _txnKey, uint count);\n /// @notice delete a credential\n function deleteCredential(bytes32 _txnKey) authorized(msg.sender) public returns(bool success) {\n success = _deleteCredential(_txnKey);\n CredentialDeleted(_txnKey, credentialVault.keys.length);\n return success;\n }\n\n function _deleteCredential(bytes32 _txnKey) public returns(bool success) {\n delete credentialVault.credentials[_txnKey];\n uint rowToDelete = credentialVault.indexMap[_txnKey];\n bytes32 rowToMove = credentialVault.keys[credentialVault.keys.length-1];\n credentialVault.indexMap[rowToMove] = rowToDelete;\n credentialVault.keys[rowToDelete] = rowToMove;\n credentialVault.keys.length--;\n delete credentialVault.indexMap[_txnKey];\n delete credentialVault.credentials[_txnKey];\n return true;\n }\n\n /// @notice get a holders credential\n /// @param _name index of credential to return\n function getCredential(bytes32 _txnKey) constant public returns (\n address _issuer,\n string _description,\n string _name,\n string _image,\n string _version,\n uint _expires,\n address _recipient,\n bytes32 txnKey,\n bool _active\n ) {\n require(credentialVault.keys.length > 0);\n BadgeLibrary.Credential memory cred = credentialVault.credentials[_txnKey];\n return (\n cred.badge.issuer,\n cred.badge.description,\n cred.badge.name,\n cred.badge.image,\n cred.badge.version,\n cred.expires,\n cred.recipient,\n cred.txnKey,\n cred.active\n );\n }\n\n /// @notice helper function for UI to retrieve all names then retrieve the credentials\n /// @param _index index of the name you want\n function getTxnKey(uint _index) constant public returns(bytes32 txnKey) {\n return credentialVault.keys[_index];\n }\n\n /// @dev get number of credentials\n function getNumberOfCredentials() constant public returns(uint count) {\n return credentialVault.keys.length;\n }\n\n /// @dev get number of pending credentials\n function getNumberOfPendingCredentials() constant public returns(uint count) {\n return credentialVault.numOfPendingCreds;\n }\n\n function recomputePOIHash(bytes32 _txnKey) constant public returns(bytes32 poiHash) {\n BadgeLibrary.Credential memory credential = credentialVault.credentials[_txnKey];\n return getIntegrityHash(\n credential.badge.issuer,\n credential.badge.description,\n credential.badge.name,\n credential.badge.image,\n credential.badge.version,\n credential.recipient\n );\n }\n}\n", + "bytecode": "0x6060604052341561000f57600080fd5b6040516020806127c283398101604052808051906020019091905050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506127478061007b6000396000f3006060604052600436106100db576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063064c4d6c146100e057806317a43191146101095780631ddb6af6146101305780634e3943e7146102b0578063567f77931461042a5780636bcdaa331461045357806392c54daf14610496578063a8d97e5c146104e7578063b193772a14610526578063b93d28eb14610565578063bfd9008b1461059e578063c4566bdd146105dd578063d1be488314610616578063e2b27eb014610881578063e534155d146108c0575b600080fd5b34156100eb57600080fd5b6100f3610915565b6040518082815260200191505060405180910390f35b341561011457600080fd5b61012e600480803560001916906020019091905050610925565b005b341561013b57600080fd5b610292600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610ac3565b60405180826000191660001916815260200191505060405180910390f35b34156102bb57600080fd5b610428600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001909190803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803560001916906020019091905050610cb9565b005b341561043557600080fd5b61043d6110a3565b6040518082815260200191505060405180910390f35b341561045e57600080fd5b6104786004808035600019169060200190919050506110b0565b60405180826000191660001916815260200191505060405180910390f35b34156104a157600080fd5b6104cd600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506114a8565b604051808215151515815260200191505060405180910390f35b34156104f257600080fd5b61050c6004808035600019169060200190919050506114c8565b604051808215151515815260200191505060405180910390f35b341561053157600080fd5b610547600480803590602001909190505061163c565b60405180826000191660001916815260200191505060405180910390f35b341561057057600080fd5b61059c600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611663565b005b34156105a957600080fd5b6105c3600480803560001916906020019091905050611790565b604051808215151515815260200191505060405180910390f35b34156105e857600080fd5b610614600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611c97565b005b341561062157600080fd5b61063b600480803560001916906020019091905050611dc4565b604051808a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001806020018060200180602001806020018981526020018873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200187600019166000191681526020018615151515815260200185810385528d818151815260200191508051906020019080838360005b838110156107095780820151818401526020810190506106ee565b50505050905090810190601f1680156107365780820380516001836020036101000a031916815260200191505b5085810384528c818151815260200191508051906020019080838360005b8381101561076f578082015181840152602081019050610754565b50505050905090810190601f16801561079c5780820380516001836020036101000a031916815260200191505b5085810383528b818151815260200191508051906020019080838360005b838110156107d55780820151818401526020810190506107ba565b50505050905090810190601f1680156108025780820380516001836020036101000a031916815260200191505b5085810382528a818151815260200191508051906020019080838360005b8381101561083b578082015181840152602081019050610820565b50505050905090810190601f1680156108685780820380516001836020036101000a031916815260200191505b509d505050505050505050505050505060405180910390f35b341561088c57600080fd5b6108a6600480803560001916906020019091905050612224565b604051808215151515815260200191505060405180910390f35b34156108cb57600080fd5b6108d36124b4565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6000600160030180549050905090565b3360008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161490507f7fca019a0a52664785803f352d793a992f66c4affa261b3daf127976e7ad67998282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a18015156109f557600080fd5b60016000016000846000191660001916815260200190815260200160002060080160009054906101000a900460ff16151515610a3057600080fd5b6001806000016000856000191660001916815260200190815260200160002060080160006101000a81548160ff021916908315150217905550600160020160008154809291906001900391905055507f978dbd4a5c69398988d130f73b479d634067339a3258c23bf271f12999b1c1138360405180826000191660001916815260200191505060405180910390a1505050565b6000868686868686604051808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140186805190602001908083835b602083101515610b415780518252602082019150602081019050602083039250610b1c565b6001836020036101000a03801982511681845116808217855250505050505090500185805190602001908083835b602083101515610b945780518252602082019150602081019050602083039250610b6f565b6001836020036101000a03801982511681845116808217855250505050505090500184805190602001908083835b602083101515610be75780518252602082019150602081019050602083039250610bc2565b6001836020036101000a03801982511681845116808217855250505050505090500183805190602001908083835b602083101515610c3a5780518252602082019150602081019050602083039250610c15565b6001836020036101000a0380198251168184511680821785525050505050509050018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014019650505050505050604051809103902090509695505050505050565b337f2bf8ea5a40db67784aa965ddf3e37384c79dbaf6178e1c7b8e3be19f22f84b9c81604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515610d7557600080fd5b60a06040519081016040528060a0604051908101604052808c73ffffffffffffffffffffffffffffffffffffffff1681526020018b81526020018a81526020018981526020018881525081526020018581526020018473ffffffffffffffffffffffffffffffffffffffff168152602001836000191681526020016000151581525060016000016000846000191660001916815260200190815260200160002060008201518160000160008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506020820151816001019080519060200190610e819291906124d9565b506040820151816002019080519060200190610e9e9291906124d9565b506060820151816003019080519060200190610ebb9291906124d9565b506080820151816004019080519060200190610ed89291906124d9565b5050506020820151816005015560408201518160060160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506060820151816007019060001916905560808201518160080160006101000a81548160ff0219169083151502179055509050506001806003018054806001018281610f779190612559565b9160005260206000209001600085909190915090600019169055036001800160008460001916600019168152602001908152602001600020819055506001600201600081548092919060010191905055507fed60274040809c2e0c3199910a8fc3317c525cf63a383939cd93936d01192a0a878a60405180806020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828103825284818151815260200191508051906020019080838360005b8381101561105d578082015181840152602081019050611042565b50505050905090810190601f16801561108a5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a1505050505050505050565b6000600160020154905090565b60006110ba612585565b60016000016000846000191660001916815260200190815260200160002060a060405190810160405290816000820160a060405190810160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111e45780601f106111b9576101008083540402835291602001916111e4565b820191906000526020600020905b8154815290600101906020018083116111c757829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156112865780601f1061125b57610100808354040283529160200191611286565b820191906000526020600020905b81548152906001019060200180831161126957829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156113285780601f106112fd57610100808354040283529160200191611328565b820191906000526020600020905b81548152906001019060200180831161130b57829003601f168201915b50505050508152602001600482018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156113ca5780601f1061139f576101008083540402835291602001916113ca565b820191906000526020600020905b8154815290600101906020018083116113ad57829003601f168201915b5050505050815250508152602001600582015481526020016006820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016007820154600019166000191681526020016008820160009054906101000a900460ff16151515158152505090506114a08160000151600001518260000151602001518360000151604001518460000151606001518560000151608001518660400151610ac3565b915050919050565b60056020528060005260406000206000915054906101000a900460ff1681565b60003360008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161490507f7fca019a0a52664785803f352d793a992f66c4affa261b3daf127976e7ad67998282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a180151561159a57600080fd5b60016000016000856000191660001916815260200190815260200160002060080160009054906101000a900460ff161515156115d557600080fd5b600160020160008154809291906001900391905055507f3d6d2e20f8295ac74aaf9f1baed466127668c2875ea803edb9fdef728c58116f8460405180826000191660001916815260200191505060405180910390a161163384612224565b92505050919050565b600060016003018281548110151561165057fe5b9060005260206000209001549050919050565b3360008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161490507f7fca019a0a52664785803f352d793a992f66c4affa261b3daf127976e7ad67998282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a180151561173357600080fd5b6000600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550505050565b600061179a612585565b3360008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161490507f7fca019a0a52664785803f352d793a992f66c4affa261b3daf127976e7ad67998282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a180151561186a57600080fd5b60016000016000866000191660001916815260200190815260200160002060a060405190810160405290816000820160a060405190810160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156119945780601f1061196957610100808354040283529160200191611994565b820191906000526020600020905b81548152906001019060200180831161197757829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611a365780601f10611a0b57610100808354040283529160200191611a36565b820191906000526020600020905b815481529060010190602001808311611a1957829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611ad85780601f10611aad57610100808354040283529160200191611ad8565b820191906000526020600020905b815481529060010190602001808311611abb57829003601f168201915b50505050508152602001600482018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b7a5780601f10611b4f57610100808354040283529160200191611b7a565b820191906000526020600020905b815481529060010190602001808311611b5d57829003601f168201915b5050505050815250508152602001600582015481526020016006820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016007820154600019166000191681526020016008820160009054906101000a900460ff161515151581525050925082608001511515611c3157611c2a856114c8565b9350611c3d565b611c3a85612224565b93505b7f53c822192afd4ec78307b42da85bc3b1afa0e4536e82c2bcfb6bb8e18a6c6553856001600301805490506040518083600019166000191681526020018281526020019250505060405180910390a1839350505050919050565b3360008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161490507f7fca019a0a52664785803f352d793a992f66c4affa261b3daf127976e7ad67998282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a1801515611d6757600080fd5b6001600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550505050565b6000611dce6125d7565b611dd66125d7565b611dde6125d7565b611de66125d7565b600080600080611df4612585565b6000600160030180549050111515611e0b57600080fd5b600160000160008c6000191660001916815260200190815260200160002060a060405190810160405290816000820160a060405190810160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611f355780601f10611f0a57610100808354040283529160200191611f35565b820191906000526020600020905b815481529060010190602001808311611f1857829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611fd75780601f10611fac57610100808354040283529160200191611fd7565b820191906000526020600020905b815481529060010190602001808311611fba57829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156120795780601f1061204e57610100808354040283529160200191612079565b820191906000526020600020905b81548152906001019060200180831161205c57829003601f168201915b50505050508152602001600482018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561211b5780601f106120f05761010080835404028352916020019161211b565b820191906000526020600020905b8154815290600101906020018083116120fe57829003601f168201915b5050505050815250508152602001600582015481526020016006820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016007820154600019166000191681526020016008820160009054906101000a900460ff16151515158152505090508060000151600001518160000151602001518260000151604001518360000151606001518460000151608001518560200151866040015187606001518860800151879750869650859550849450995099509950995099509950995099509950509193959799909294969850565b60008060006001600001600085600019166000191681526020019081526020016000206000808201600080820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905560018201600061228491906125eb565b60028201600061229491906125eb565b6003820160006122a491906125eb565b6004820160006122b491906125eb565b505060058201600090556006820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905560078201600090556008820160006101000a81549060ff0219169055505060018001600085600019166000191681526020019081526020016000205491506001600301600180600301805490500381548110151561233f57fe5b9060005260206000209001549050816001800160008360001916600019168152602001908152602001600020819055508060016003018381548110151561238257fe5b9060005260206000209001816000191690555060016003018054809190600190036123ad9190612633565b506001800160008560001916600019168152602001908152602001600020600090556001600001600085600019166000191681526020019081526020016000206000808201600080820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905560018201600061242a91906125eb565b60028201600061243a91906125eb565b60038201600061244a91906125eb565b60048201600061245a91906125eb565b505060058201600090556006820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905560078201600090556008820160006101000a81549060ff02191690555050600192505050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061251a57805160ff1916838001178555612548565b82800160010185558215612548579182015b8281111561254757825182559160200191906001019061252c565b5b509050612555919061265f565b5090565b8154818355818115116125805781836000526020600020918201910161257f9190612684565b5b505050565b6101206040519081016040528061259a6126a9565b815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600080191681526020016000151581525090565b602060405190810160405280600081525090565b50805460018160011615610100020316600290046000825580601f106126115750612630565b601f01602090049060005260206000209081019061262f919061265f565b5b50565b81548183558181151161265a578183600052602060002091820191016126599190612684565b5b505050565b61268191905b8082111561267d576000816000905550600101612665565b5090565b90565b6126a691905b808211156126a257600081600090555060010161268a565b5090565b90565b60a060405190810160405280600073ffffffffffffffffffffffffffffffffffffffff1681526020016126da612707565b81526020016126e7612707565b81526020016126f4612707565b8152602001612701612707565b81525090565b6020604051908101604052806000815250905600a165627a7a72305820619399d25341f70e913a3a7a3a60b08efd3a66ab794faff25e57f87dc927d3410029", + "deployedBytecode": "0x6060604052600436106100db576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063064c4d6c146100e057806317a43191146101095780631ddb6af6146101305780634e3943e7146102b0578063567f77931461042a5780636bcdaa331461045357806392c54daf14610496578063a8d97e5c146104e7578063b193772a14610526578063b93d28eb14610565578063bfd9008b1461059e578063c4566bdd146105dd578063d1be488314610616578063e2b27eb014610881578063e534155d146108c0575b600080fd5b34156100eb57600080fd5b6100f3610915565b6040518082815260200191505060405180910390f35b341561011457600080fd5b61012e600480803560001916906020019091905050610925565b005b341561013b57600080fd5b610292600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610ac3565b60405180826000191660001916815260200191505060405180910390f35b34156102bb57600080fd5b610428600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001909190803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803560001916906020019091905050610cb9565b005b341561043557600080fd5b61043d6110a3565b6040518082815260200191505060405180910390f35b341561045e57600080fd5b6104786004808035600019169060200190919050506110b0565b60405180826000191660001916815260200191505060405180910390f35b34156104a157600080fd5b6104cd600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506114a8565b604051808215151515815260200191505060405180910390f35b34156104f257600080fd5b61050c6004808035600019169060200190919050506114c8565b604051808215151515815260200191505060405180910390f35b341561053157600080fd5b610547600480803590602001909190505061163c565b60405180826000191660001916815260200191505060405180910390f35b341561057057600080fd5b61059c600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611663565b005b34156105a957600080fd5b6105c3600480803560001916906020019091905050611790565b604051808215151515815260200191505060405180910390f35b34156105e857600080fd5b610614600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611c97565b005b341561062157600080fd5b61063b600480803560001916906020019091905050611dc4565b604051808a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001806020018060200180602001806020018981526020018873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200187600019166000191681526020018615151515815260200185810385528d818151815260200191508051906020019080838360005b838110156107095780820151818401526020810190506106ee565b50505050905090810190601f1680156107365780820380516001836020036101000a031916815260200191505b5085810384528c818151815260200191508051906020019080838360005b8381101561076f578082015181840152602081019050610754565b50505050905090810190601f16801561079c5780820380516001836020036101000a031916815260200191505b5085810383528b818151815260200191508051906020019080838360005b838110156107d55780820151818401526020810190506107ba565b50505050905090810190601f1680156108025780820380516001836020036101000a031916815260200191505b5085810382528a818151815260200191508051906020019080838360005b8381101561083b578082015181840152602081019050610820565b50505050905090810190601f1680156108685780820380516001836020036101000a031916815260200191505b509d505050505050505050505050505060405180910390f35b341561088c57600080fd5b6108a6600480803560001916906020019091905050612224565b604051808215151515815260200191505060405180910390f35b34156108cb57600080fd5b6108d36124b4565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6000600160030180549050905090565b3360008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161490507f7fca019a0a52664785803f352d793a992f66c4affa261b3daf127976e7ad67998282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a18015156109f557600080fd5b60016000016000846000191660001916815260200190815260200160002060080160009054906101000a900460ff16151515610a3057600080fd5b6001806000016000856000191660001916815260200190815260200160002060080160006101000a81548160ff021916908315150217905550600160020160008154809291906001900391905055507f978dbd4a5c69398988d130f73b479d634067339a3258c23bf271f12999b1c1138360405180826000191660001916815260200191505060405180910390a1505050565b6000868686868686604051808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140186805190602001908083835b602083101515610b415780518252602082019150602081019050602083039250610b1c565b6001836020036101000a03801982511681845116808217855250505050505090500185805190602001908083835b602083101515610b945780518252602082019150602081019050602083039250610b6f565b6001836020036101000a03801982511681845116808217855250505050505090500184805190602001908083835b602083101515610be75780518252602082019150602081019050602083039250610bc2565b6001836020036101000a03801982511681845116808217855250505050505090500183805190602001908083835b602083101515610c3a5780518252602082019150602081019050602083039250610c15565b6001836020036101000a0380198251168184511680821785525050505050509050018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014019650505050505050604051809103902090509695505050505050565b337f2bf8ea5a40db67784aa965ddf3e37384c79dbaf6178e1c7b8e3be19f22f84b9c81604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515610d7557600080fd5b60a06040519081016040528060a0604051908101604052808c73ffffffffffffffffffffffffffffffffffffffff1681526020018b81526020018a81526020018981526020018881525081526020018581526020018473ffffffffffffffffffffffffffffffffffffffff168152602001836000191681526020016000151581525060016000016000846000191660001916815260200190815260200160002060008201518160000160008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506020820151816001019080519060200190610e819291906124d9565b506040820151816002019080519060200190610e9e9291906124d9565b506060820151816003019080519060200190610ebb9291906124d9565b506080820151816004019080519060200190610ed89291906124d9565b5050506020820151816005015560408201518160060160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506060820151816007019060001916905560808201518160080160006101000a81548160ff0219169083151502179055509050506001806003018054806001018281610f779190612559565b9160005260206000209001600085909190915090600019169055036001800160008460001916600019168152602001908152602001600020819055506001600201600081548092919060010191905055507fed60274040809c2e0c3199910a8fc3317c525cf63a383939cd93936d01192a0a878a60405180806020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828103825284818151815260200191508051906020019080838360005b8381101561105d578082015181840152602081019050611042565b50505050905090810190601f16801561108a5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a1505050505050505050565b6000600160020154905090565b60006110ba612585565b60016000016000846000191660001916815260200190815260200160002060a060405190810160405290816000820160a060405190810160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111e45780601f106111b9576101008083540402835291602001916111e4565b820191906000526020600020905b8154815290600101906020018083116111c757829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156112865780601f1061125b57610100808354040283529160200191611286565b820191906000526020600020905b81548152906001019060200180831161126957829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156113285780601f106112fd57610100808354040283529160200191611328565b820191906000526020600020905b81548152906001019060200180831161130b57829003601f168201915b50505050508152602001600482018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156113ca5780601f1061139f576101008083540402835291602001916113ca565b820191906000526020600020905b8154815290600101906020018083116113ad57829003601f168201915b5050505050815250508152602001600582015481526020016006820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016007820154600019166000191681526020016008820160009054906101000a900460ff16151515158152505090506114a08160000151600001518260000151602001518360000151604001518460000151606001518560000151608001518660400151610ac3565b915050919050565b60056020528060005260406000206000915054906101000a900460ff1681565b60003360008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161490507f7fca019a0a52664785803f352d793a992f66c4affa261b3daf127976e7ad67998282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a180151561159a57600080fd5b60016000016000856000191660001916815260200190815260200160002060080160009054906101000a900460ff161515156115d557600080fd5b600160020160008154809291906001900391905055507f3d6d2e20f8295ac74aaf9f1baed466127668c2875ea803edb9fdef728c58116f8460405180826000191660001916815260200191505060405180910390a161163384612224565b92505050919050565b600060016003018281548110151561165057fe5b9060005260206000209001549050919050565b3360008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161490507f7fca019a0a52664785803f352d793a992f66c4affa261b3daf127976e7ad67998282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a180151561173357600080fd5b6000600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550505050565b600061179a612585565b3360008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161490507f7fca019a0a52664785803f352d793a992f66c4affa261b3daf127976e7ad67998282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a180151561186a57600080fd5b60016000016000866000191660001916815260200190815260200160002060a060405190810160405290816000820160a060405190810160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156119945780601f1061196957610100808354040283529160200191611994565b820191906000526020600020905b81548152906001019060200180831161197757829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611a365780601f10611a0b57610100808354040283529160200191611a36565b820191906000526020600020905b815481529060010190602001808311611a1957829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611ad85780601f10611aad57610100808354040283529160200191611ad8565b820191906000526020600020905b815481529060010190602001808311611abb57829003601f168201915b50505050508152602001600482018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b7a5780601f10611b4f57610100808354040283529160200191611b7a565b820191906000526020600020905b815481529060010190602001808311611b5d57829003601f168201915b5050505050815250508152602001600582015481526020016006820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016007820154600019166000191681526020016008820160009054906101000a900460ff161515151581525050925082608001511515611c3157611c2a856114c8565b9350611c3d565b611c3a85612224565b93505b7f53c822192afd4ec78307b42da85bc3b1afa0e4536e82c2bcfb6bb8e18a6c6553856001600301805490506040518083600019166000191681526020018281526020019250505060405180910390a1839350505050919050565b3360008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161490507f7fca019a0a52664785803f352d793a992f66c4affa261b3daf127976e7ad67998282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a1801515611d6757600080fd5b6001600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550505050565b6000611dce6125d7565b611dd66125d7565b611dde6125d7565b611de66125d7565b600080600080611df4612585565b6000600160030180549050111515611e0b57600080fd5b600160000160008c6000191660001916815260200190815260200160002060a060405190810160405290816000820160a060405190810160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611f355780601f10611f0a57610100808354040283529160200191611f35565b820191906000526020600020905b815481529060010190602001808311611f1857829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611fd75780601f10611fac57610100808354040283529160200191611fd7565b820191906000526020600020905b815481529060010190602001808311611fba57829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156120795780601f1061204e57610100808354040283529160200191612079565b820191906000526020600020905b81548152906001019060200180831161205c57829003601f168201915b50505050508152602001600482018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561211b5780601f106120f05761010080835404028352916020019161211b565b820191906000526020600020905b8154815290600101906020018083116120fe57829003601f168201915b5050505050815250508152602001600582015481526020016006820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016007820154600019166000191681526020016008820160009054906101000a900460ff16151515158152505090508060000151600001518160000151602001518260000151604001518360000151606001518460000151608001518560200151866040015187606001518860800151879750869650859550849450995099509950995099509950995099509950509193959799909294969850565b60008060006001600001600085600019166000191681526020019081526020016000206000808201600080820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905560018201600061228491906125eb565b60028201600061229491906125eb565b6003820160006122a491906125eb565b6004820160006122b491906125eb565b505060058201600090556006820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905560078201600090556008820160006101000a81549060ff0219169055505060018001600085600019166000191681526020019081526020016000205491506001600301600180600301805490500381548110151561233f57fe5b9060005260206000209001549050816001800160008360001916600019168152602001908152602001600020819055508060016003018381548110151561238257fe5b9060005260206000209001816000191690555060016003018054809190600190036123ad9190612633565b506001800160008560001916600019168152602001908152602001600020600090556001600001600085600019166000191681526020019081526020016000206000808201600080820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905560018201600061242a91906125eb565b60028201600061243a91906125eb565b60038201600061244a91906125eb565b60048201600061245a91906125eb565b505060058201600090556006820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905560078201600090556008820160006101000a81549060ff02191690555050600192505050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061251a57805160ff1916838001178555612548565b82800160010185558215612548579182015b8281111561254757825182559160200191906001019061252c565b5b509050612555919061265f565b5090565b8154818355818115116125805781836000526020600020918201910161257f9190612684565b5b505050565b6101206040519081016040528061259a6126a9565b815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600080191681526020016000151581525090565b602060405190810160405280600081525090565b50805460018160011615610100020316600290046000825580601f106126115750612630565b601f01602090049060005260206000209081019061262f919061265f565b5b50565b81548183558181151161265a578183600052602060002091820191016126599190612684565b5b505050565b61268191905b8082111561267d576000816000905550600101612665565b5090565b90565b6126a691905b808211156126a257600081600090555060010161268a565b5090565b90565b60a060405190810160405280600073ffffffffffffffffffffffffffffffffffffffff1681526020016126da612707565b81526020016126e7612707565b81526020016126f4612707565b8152602001612701612707565b81525090565b6020604051908101604052806000815250905600a165627a7a72305820619399d25341f70e913a3a7a3a60b08efd3a66ab794faff25e57f87dc927d3410029", + "sourceMap": "102:6143:3:-;;;691:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;750:7;741:6;;:16;;;;;;;;;;;;;;;;;;691:73;102:6143;;;;;;", + "deployedSourceMap": "102:6143:3:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5483:121;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2633:288;;;;;;;;;;;;;;;;;;;;;;;;;;;;;103:376:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1867:710:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5657:134;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5797:446;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;639:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2974:290;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5314:124;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1599;;;;;;;;;;;;;;;;;;;;;;;;;;;;3364:424;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1432:120;;;;;;;;;;;;;;;;;;;;;;;;;;;;4445:723;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3794:553:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;203:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5483:121;5541:10;5570:15;:20;;:27;;;;5563:34;;5483:121;:::o;2633:288::-;2687:10;988:17;1020:6;;;;;;;;;;;1009:17;;:7;:17;;;988:39;;1037;1054:7;1063:12;1037:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1094:12;1086:21;;;;;;;;2725:15;:27;;:36;2753:7;2725:36;;;;;;;;;;;;;;;;;:43;;;;;;;;;;;;2724:44;2716:53;;;;;;;;2825:4;2779:15;:27;;:36;2807:7;2779:36;;;;;;;;;;;;;;;;;:43;;;:50;;;;;;;;;;;;;;;;;;2839:15;:33;;;:35;;;;;;;;;;;;;;2884:30;2906:7;2884:30;;;;;;;;;;;;;;;;;;;;;;;;2633:288;;;:::o;103:376:1:-;287:13;344:6;366:11;393:4;413:5;434:7;457:9;319:155;;;;;;;;;;;;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:2;51:6;36:153;;;182:3;176:5;171:3;164:6;98:2;93:3;89;82:19;;123:2;118:3;114;107:19;;148:2;143:3;139;132:19;;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;36:153;66:2;61:3;58:2;51:6;36:153;;;182:3;176:5;171:3;164:6;98:2;93:3;89;82:19;;123:2;118:3;114;107:19;;148:2;143:3;139;132:19;;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;36:153;66:2;61:3;58:2;51:6;36:153;;;182:3;176:5;171:3;164:6;98:2;93:3;89;82:19;;123:2;118:3;114;107:19;;148:2;143:3;139;132:19;;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;36:153;66:2;61:3;58:2;51:6;36:153;;;182:3;176:5;171:3;164:6;98:2;93:3;89;82:19;;123:2;118:3;114;107:19;;148:2;143:3;139;132:19;;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;312:162:1;;103:376;;;;;;;;:::o;1867:710:3:-;2113:10;1301:24;1317:7;1301:24;;;;;;;;;;;;;;;;;;;;;;1343:14;:23;1358:7;1343:23;;;;;;;;;;;;;;;;;;;;;;;;;1335:32;;;;;;;;2178:219;;;;;;;;;2219:66;;;;;;;;;2238:7;2219:66;;;;;;2247:12;2219:66;;;;2261:5;2219:66;;;;2268:6;2219:66;;;;2276:8;2219:66;;;2178:219;;;;2303:8;2178:219;;;;2329:10;2178:219;;;;;;2357:7;2178:219;;;;;;;2382:5;2178:219;;;;;2139:15;:27;;:36;2167:7;2139:36;;;;;;;;;;;;;;;;;:258;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2478:1;2443:15;:20;;:34;;;;;;;;;;;:::i;:::-;;;;;;;;;;2469:7;2443:34;;;;;;;;;;;:36;2407:15;:24;;:33;2432:7;2407:33;;;;;;;;;;;;;;;;;:72;;;;2489:15;:33;;;:35;;;;;;;;;;;;;2534:36;2555:5;2562:7;2534:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1867:710:3;;;;;;;;;:::o;5657:134::-;5722:10;5751:15;:33;;;5744:40;;5657:134;:::o;5797:446::-;5864:15;5891:41;;:::i;:::-;5935:15;:27;;:36;5963:7;5935:36;;;;;;;;;;;;;;;;;5891:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5988:248;6018:10;:16;;;:23;;;6055:10;:16;;;:28;;;6097:10;:16;;;:21;;;6132:10;:16;;;:22;;;6168:10;:16;;;:24;;;6206:10;:20;;;5988:16;:248::i;:::-;5981:255;;5797:446;;;;:::o;639:45::-;;;;;;;;;;;;;;;;;;;;;;:::o;2974:290::-;3055:12;3028:10;988:17;1020:6;;;;;;;;;;;1009:17;;:7;:17;;;988:39;;1037;1054:7;1063:12;1037:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1094:12;1086:21;;;;;;;;3088:15;:27;;:36;3116:7;3088:36;;;;;;;;;;;;;;;;;:43;;;;;;;;;;;;3087:44;3079:53;;;;;;;;3142:15;:33;;;:35;;;;;;;;;;;;;;3187:27;3206:7;3187:27;;;;;;;;;;;;;;;;;;;;;;;;3231:26;3249:7;3231:17;:26::i;:::-;3224:33;;2974:290;;;;;:::o;5314:124::-;5370:14;5403:15;:20;;5424:6;5403:28;;;;;;;;;;;;;;;;;;;5396:35;;5314:124;;;:::o;1599:::-;1663:10;988:17;1020:6;;;;;;;;;;;1009:17;;:7;:17;;;988:39;;1037;1054:7;1063:12;1037:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1094:12;1086:21;;;;;;;;1711:5;1685:14;:23;1700:7;1685:23;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;1599:124;;;:::o;3364:424::-;3445:12;3469:35;;:::i;:::-;3418:10;988:17;1020:6;;;;;;;;;;;1009:17;;:7;:17;;;988:39;;1037;1054:7;1063:12;1037:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1094:12;1086:21;;;;;;;;3507:15;:27;;:36;3535:7;3507:36;;;;;;;;;;;;;;;;;3469:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3557:4;:11;;;3556:12;3553:140;;;3592:25;3609:7;3592:16;:25::i;:::-;3582:35;;3553:140;;;3656:26;3674:7;3656:17;:26::i;:::-;3646:36;;3553:140;3702:55;3720:7;3729:15;:20;;:27;;;;3702:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3774:7;3767:14;;3364:424;;;;;;:::o;1432:120::-;1493:10;988:17;1020:6;;;;;;;;;;;1009:17;;:7;:17;;;988:39;;1037;1054:7;1063:12;1037:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1094:12;1086:21;;;;;;;;1541:4;1515:14;:23;1530:7;1515:23;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;1432:120;;;:::o;4445:723::-;4520:15;4545:19;;:::i;:::-;4574:12;;:::i;:::-;4596:13;;:::i;:::-;4619:15;;:::i;:::-;4644:13;4667:18;4695:14;4719:12;4798:35;;:::i;:::-;4786:1;4756:15;:20;;:27;;;;:31;4748:40;;;;;;;;4836:15;:27;;:36;4864:7;4836:36;;;;;;;;;;;;;;;;;4798:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4903:4;:10;;;:17;;;4934:4;:10;;;:22;;;4970:4;:10;;;:15;;;4999:4;:10;;;:16;;;5029:4;:10;;;:18;;;5061:4;:12;;;5087:4;:14;;;5115:4;:11;;;5140:4;:11;;;4882:279;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4445:723;;;;;;;;;;;;:::o;3794:553::-;3853:12;3930:16;3992:17;3884:15;:27;;:36;3912:7;3884:36;;;;;;;;;;;;;;;;;;3877:43;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3949:15;:24;;:33;3974:7;3949:33;;;;;;;;;;;;;;;;;;3930:52;;4012:15;:20;;4061:1;4033:15;:20;;:27;;;;:29;4012:51;;;;;;;;;;;;;;;;;;;3992:71;;4111:11;4073:15;:24;;:35;4098:9;4073:35;;;;;;;;;;;;;;;;;:49;;;;4168:9;4132:15;:20;;4153:11;4132:33;;;;;;;;;;;;;;;;;;:45;;;;;;;4187:15;:20;;:29;;;;;;;;;;;;:::i;:::-;;4233:15;:24;;:33;4258:7;4233:33;;;;;;;;;;;;;;;;;4226:40;;;4283:15;:27;;:36;4311:7;4283:36;;;;;;;;;;;;;;;;;;4276:43;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4336:4;4329:11;;3794:553;;;;;:::o;203:21::-;;;;;;;;;;;;;:::o;102:6143::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::o;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o", + "source": "pragma solidity ^0.4.17;\n\nimport \"BadgeLibrary/contracts/BadgeLibrary.sol\";\n\nimport \"./BFUtils.sol\";\n\ncontract Holder is BFUtils {\n\n /// @notice address where holder holds there badgeforce tokens\n address public holder;\n\n /// @notice mapping of name hash to credential\n /// @notice array of hash names\n struct CredentialVault {\n mapping (bytes32=>BadgeLibrary.Credential) credentials;\n mapping (bytes32=>uint) indexMap;\n uint numOfPendingCreds;\n bytes32[] keys;\n }\n\n /// @notice vault holding credentials\n CredentialVault credentialVault;\n\n /// @notice mapping of trusted issuers\n mapping (address=>bool) public trustedIssuers;\n\n function Holder(address _holder) public {\n holder = _holder;\n }\n\n event AuthorizeAttempt(address _actor, bool authorized);\n /// @notice make sure caller is the issuer that owns this contract because badgeforce tokens will be used\n modifier authorized(address _holder) {\n bool isAuthorized = (_holder == holder);\n AuthorizeAttempt(_holder, isAuthorized);\n require(isAuthorized);\n _;\n }\n\n event LogStoreAttempt(address _caller);\n /// @notice make sure issuer is trusted to store credentials on this contract\n modifier trusted(address _issuer) {\n LogStoreAttempt(_issuer);\n require(trustedIssuers[_issuer]);\n _;\n }\n\n /// @notice add a new trusted issuer\n function addTrustedIssuer(address _issuer) public authorized(msg.sender) {\n trustedIssuers[_issuer] = true;\n }\n\n /// @notice add a new trusted issuer\n function removeTrustedIssuer(address _issuer) public authorized(msg.sender) {\n trustedIssuers[_issuer] = false;\n }\n\n event NewPendingCredential(string _name, address _issuer);\n /**\n * @dev put a new credential inside the pending queue\n */\n function storeCredential(\n address _issuer,\n string _description,\n string _name,\n string _image,\n string _version,\n uint _expires,\n address _recipient,\n bytes32 _txnKey\n ) public trusted(msg.sender)\n {\n credentialVault.credentials[_txnKey] = BadgeLibrary.Credential(\n BadgeLibrary.Badge(_issuer, _description, _name, _image, _version),\n _expires,\n _recipient,\n _txnKey,\n false\n );\n credentialVault.indexMap[_txnKey] = credentialVault.keys.push(_txnKey)-1;\n credentialVault.numOfPendingCreds++;\n NewPendingCredential(_name, _issuer);\n }\n\n event NewCredentialAccepted(bytes32 _txnKey);\n function acceptCredential(bytes32 _txnKey) authorized(msg.sender) public {\n require(!credentialVault.credentials[_txnKey].active);\n credentialVault.credentials[_txnKey].active = true;\n credentialVault.numOfPendingCreds--;\n NewCredentialAccepted(_txnKey);\n }\n\n event CredentialRejected(bytes32 _txnKey);\n function rejectCredential(bytes32 _txnKey) authorized(msg.sender) public returns(bool success) {\n require(!credentialVault.credentials[_txnKey].active);\n credentialVault.numOfPendingCreds--;\n CredentialRejected(_txnKey);\n return _deleteCredential(_txnKey);\n }\n\n event CredentialDeleted(bytes32 _txnKey, uint count);\n /// @notice delete a credential\n function deleteCredential(bytes32 _txnKey) authorized(msg.sender) public returns(bool success) {\n BadgeLibrary.Credential memory cred = credentialVault.credentials[_txnKey];\n if(!cred.active) {\n success = rejectCredential(_txnKey);\n } else {\n success = _deleteCredential(_txnKey);\n }\n CredentialDeleted(_txnKey, credentialVault.keys.length);\n return success;\n }\n\n function _deleteCredential(bytes32 _txnKey) public returns(bool success) {\n delete credentialVault.credentials[_txnKey];\n uint rowToDelete = credentialVault.indexMap[_txnKey];\n bytes32 rowToMove = credentialVault.keys[credentialVault.keys.length-1];\n credentialVault.indexMap[rowToMove] = rowToDelete;\n credentialVault.keys[rowToDelete] = rowToMove;\n credentialVault.keys.length--;\n delete credentialVault.indexMap[_txnKey];\n delete credentialVault.credentials[_txnKey];\n return true;\n }\n\n /// @notice get a holders credential\n /// @param _name index of credential to return\n function getCredential(bytes32 _txnKey) constant public returns (\n address _issuer,\n string _description,\n string _name,\n string _image,\n string _version,\n uint _expires,\n address _recipient,\n bytes32 txnKey,\n bool _active\n ) {\n require(credentialVault.keys.length > 0);\n BadgeLibrary.Credential memory cred = credentialVault.credentials[_txnKey];\n return (\n cred.badge.issuer,\n cred.badge.description,\n cred.badge.name,\n cred.badge.image,\n cred.badge.version,\n cred.expires,\n cred.recipient,\n cred.txnKey,\n cred.active\n );\n }\n\n /// @notice helper function for UI to retrieve all names then retrieve the credentials\n /// @param _index index of the name you want\n function getTxnKey(uint _index) constant public returns(bytes32 txnKey) {\n return credentialVault.keys[_index];\n }\n\n /// @dev get number of credentials\n function getNumberOfCredentials() constant public returns(uint count) {\n return credentialVault.keys.length;\n }\n\n /// @dev get number of pending credentials\n function getNumberOfPendingCredentials() constant public returns(uint count) {\n return credentialVault.numOfPendingCreds;\n }\n\n function recomputePOIHash(bytes32 _txnKey) constant public returns(bytes32 poiHash) {\n BadgeLibrary.Credential memory credential = credentialVault.credentials[_txnKey];\n return getIntegrityHash(\n credential.badge.issuer,\n credential.badge.description,\n credential.badge.name,\n credential.badge.image,\n credential.badge.version,\n credential.recipient\n );\n }\n}\n", "sourcePath": "/home/kc1116/Desktop/badgeforce_development/badgeforce/contracts/Holder.sol", "ast": { "attributes": { "absolutePath": "/home/kc1116/Desktop/badgeforce_development/badgeforce/contracts/Holder.sol", "exportedSymbols": { "Holder": [ - 1113 + 1136 ] } }, @@ -456,10 +461,10 @@ }, { "attributes": { - "SourceUnit": 1877, + "SourceUnit": 1900, "absolutePath": "BadgeLibrary/contracts/BadgeLibrary.sol", "file": "BadgeLibrary/contracts/BadgeLibrary.sol", - "scope": 1114, + "scope": 1137, "symbolAliases": [ null ], @@ -474,7 +479,7 @@ "SourceUnit": 207, "absolutePath": "/home/kc1116/Desktop/badgeforce_development/badgeforce/contracts/BFUtils.sol", "file": "./BFUtils.sol", - "scope": 1114, + "scope": 1137, "symbolAliases": [ null ], @@ -493,11 +498,11 @@ "documentation": null, "fullyImplemented": true, "linearizedBaseContracts": [ - 1113, + 1136, 206 ], "name": "Holder", - "scope": 1114 + "scope": 1137 }, "children": [ { @@ -527,7 +532,7 @@ "attributes": { "constant": false, "name": "holder", - "scope": 1113, + "scope": 1136, "stateVariable": true, "storageLocation": "default", "type": "address", @@ -553,7 +558,7 @@ "attributes": { "canonicalName": "Holder.CredentialVault", "name": "CredentialVault", - "scope": 1113, + "scope": 1136, "visibility": "public" }, "children": [ @@ -587,7 +592,7 @@ "attributes": { "contractScope": null, "name": "BadgeLibrary.Credential", - "referencedDeclaration": 1821, + "referencedDeclaration": 1844, "type": "struct BadgeLibrary.Credential storage pointer" }, "id": 614, @@ -721,7 +726,7 @@ "attributes": { "constant": false, "name": "credentialVault", - "scope": 1113, + "scope": 1136, "stateVariable": true, "storageLocation": "default", "type": "struct Holder.CredentialVault storage ref", @@ -749,7 +754,7 @@ "attributes": { "constant": false, "name": "trustedIssuers", - "scope": 1113, + "scope": 1136, "stateVariable": true, "storageLocation": "default", "type": "mapping(address => bool)", @@ -800,7 +805,7 @@ ], "name": "Holder", "payable": false, - "scope": 1113, + "scope": 1136, "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" @@ -1234,7 +1239,7 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 2482, + "referencedDeclaration": 2505, "type": "function (bool) pure", "value": "require" }, @@ -1455,7 +1460,7 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 2482, + "referencedDeclaration": 2505, "type": "function (bool) pure", "value": "require" }, @@ -1538,7 +1543,7 @@ "isConstructor": false, "name": "addTrustedIssuer", "payable": false, - "scope": 1113, + "scope": 1136, "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" @@ -1622,7 +1627,7 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 2479, + "referencedDeclaration": 2502, "type": "msg", "value": "msg" }, @@ -1742,7 +1747,7 @@ "isConstructor": false, "name": "removeTrustedIssuer", "payable": false, - "scope": 1113, + "scope": 1136, "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" @@ -1826,7 +1831,7 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 2479, + "referencedDeclaration": 2502, "type": "msg", "value": "msg" }, @@ -2018,7 +2023,7 @@ "isConstructor": false, "name": "storeCredential", "payable": false, - "scope": 1113, + "scope": 1136, "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" @@ -2284,7 +2289,7 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 2479, + "referencedDeclaration": 2502, "type": "msg", "value": "msg" }, @@ -2396,7 +2401,7 @@ "attributes": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_Badge_$1810_memory", + "typeIdentifier": "t_struct$_Badge_$1833_memory", "typeString": "struct BadgeLibrary.Badge memory" }, { @@ -2421,7 +2426,7 @@ "isPure": false, "lValueRequested": false, "member_name": "Credential", - "referencedDeclaration": 1821, + "referencedDeclaration": 1844, "type": "type(struct BadgeLibrary.Credential storage pointer)" }, "children": [ @@ -2431,7 +2436,7 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1876, + "referencedDeclaration": 1899, "type": "type(library BadgeLibrary)", "value": "BadgeLibrary" }, @@ -2488,7 +2493,7 @@ "isPure": false, "lValueRequested": false, "member_name": "Badge", - "referencedDeclaration": 1810, + "referencedDeclaration": 1833, "type": "type(struct BadgeLibrary.Badge storage pointer)" }, "children": [ @@ -2498,7 +2503,7 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1876, + "referencedDeclaration": 1899, "type": "type(library BadgeLibrary)", "value": "BadgeLibrary" }, @@ -3062,7 +3067,7 @@ "isConstructor": false, "name": "acceptCredential", "payable": false, - "scope": 1113, + "scope": 1136, "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" @@ -3146,7 +3151,7 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 2479, + "referencedDeclaration": 2502, "type": "msg", "value": "msg" }, @@ -3194,7 +3199,7 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 2482, + "referencedDeclaration": 2505, "type": "function (bool) pure", "value": "require" }, @@ -3222,7 +3227,7 @@ "isPure": false, "lValueRequested": false, "member_name": "active", - "referencedDeclaration": 1820, + "referencedDeclaration": 1843, "type": "bool" }, "children": [ @@ -3327,7 +3332,7 @@ "isPure": false, "lValueRequested": true, "member_name": "active", - "referencedDeclaration": 1820, + "referencedDeclaration": 1843, "type": "bool" }, "children": [ @@ -3600,7 +3605,7 @@ "isConstructor": false, "name": "rejectCredential", "payable": false, - "scope": 1113, + "scope": 1136, "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" @@ -3612,7 +3617,7 @@ "attributes": { "constant": false, "name": "_txnKey", - "scope": 875, + "scope": 877, "stateVariable": false, "storageLocation": "default", "type": "bytes32", @@ -3640,15 +3645,37 @@ "src": "2999:17:3" }, { - "attributes": { - "parameters": [ - null - ] - }, - "children": [], - "id": 851, + "children": [ + { + "attributes": { + "constant": false, + "name": "success", + "scope": 877, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 851, + "name": "ElementaryTypeName", + "src": "3055:4:3" + } + ], + "id": 852, + "name": "VariableDeclaration", + "src": "3055:12:3" + } + ], + "id": 853, "name": "ParameterList", - "src": "3047:0:3" + "src": "3054:14:3" }, { "children": [ @@ -3684,7 +3711,7 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 2479, + "referencedDeclaration": 2502, "type": "msg", "value": "msg" }, @@ -3732,13 +3759,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 2482, + "referencedDeclaration": 2505, "type": "function (bool) pure", "value": "require" }, - "id": 852, + "id": 854, "name": "Identifier", - "src": "3057:7:3" + "src": "3079:7:3" }, { "attributes": { @@ -3760,7 +3787,7 @@ "isPure": false, "lValueRequested": false, "member_name": "active", - "referencedDeclaration": 1820, + "referencedDeclaration": 1843, "type": "bool" }, "children": [ @@ -3796,14 +3823,14 @@ "type": "struct Holder.CredentialVault storage ref", "value": "credentialVault" }, - "id": 853, + "id": 855, "name": "Identifier", - "src": "3066:15:3" + "src": "3088:15:3" } ], - "id": 854, + "id": 856, "name": "MemberAccess", - "src": "3066:27:3" + "src": "3088:27:3" }, { "attributes": { @@ -3815,94 +3842,34 @@ "type": "bytes32", "value": "_txnKey" }, - "id": 855, + "id": 857, "name": "Identifier", - "src": "3094:7:3" + "src": "3116:7:3" } ], - "id": 856, + "id": 858, "name": "IndexAccess", - "src": "3066:36:3" + "src": "3088:36:3" } ], - "id": 857, + "id": 859, "name": "MemberAccess", - "src": "3066:43:3" + "src": "3088:43:3" } ], - "id": 858, + "id": 860, "name": "UnaryOperation", - "src": "3065:44:3" - } - ], - "id": 859, - "name": "FunctionCall", - "src": "3057:53:3" - } - ], - "id": 860, - "name": "ExpressionStatement", - "src": "3057:53:3" - }, - { - "children": [ - { - "attributes": { - "argumentTypes": null, - "isConstant": false, - "isLValue": false, - "isPure": false, - "isStructConstructorCall": false, - "lValueRequested": false, - "names": [ - null - ], - "type": "bool", - "type_conversion": false - }, - "children": [ - { - "attributes": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "overloadedDeclarations": [ - null - ], - "referencedDeclaration": 977, - "type": "function (bytes32) returns (bool)", - "value": "_deleteCredential" - }, - "id": 861, - "name": "Identifier", - "src": "3120:17:3" - }, - { - "attributes": { - "argumentTypes": null, - "overloadedDeclarations": [ - null - ], - "referencedDeclaration": 845, - "type": "bytes32", - "value": "_txnKey" - }, - "id": 862, - "name": "Identifier", - "src": "3138:7:3" + "src": "3087:44:3" } ], - "id": 863, + "id": 861, "name": "FunctionCall", - "src": "3120:26:3" + "src": "3079:53:3" } ], - "id": 864, + "id": 862, "name": "ExpressionStatement", - "src": "3120:26:3" + "src": "3079:53:3" }, { "children": [ @@ -3940,24 +3907,24 @@ "type": "struct Holder.CredentialVault storage ref", "value": "credentialVault" }, - "id": 865, + "id": 863, "name": "Identifier", - "src": "3156:15:3" + "src": "3142:15:3" } ], - "id": 867, + "id": 865, "name": "MemberAccess", - "src": "3156:33:3" + "src": "3142:33:3" } ], - "id": 868, + "id": 866, "name": "UnaryOperation", - "src": "3156:35:3" + "src": "3142:35:3" } ], - "id": 869, + "id": 867, "name": "ExpressionStatement", - "src": "3156:35:3" + "src": "3142:35:3" }, { "children": [ @@ -3991,9 +3958,9 @@ "type": "function (bytes32)", "value": "CredentialRejected" }, - "id": 870, + "id": 868, "name": "Identifier", - "src": "3201:18:3" + "src": "3187:18:3" }, { "attributes": { @@ -4005,29 +3972,92 @@ "type": "bytes32", "value": "_txnKey" }, - "id": 871, + "id": 869, "name": "Identifier", - "src": "3220:7:3" + "src": "3206:7:3" } ], - "id": 872, + "id": 870, "name": "FunctionCall", - "src": "3201:27:3" + "src": "3187:27:3" } ], - "id": 873, + "id": 871, "name": "ExpressionStatement", - "src": "3201:27:3" + "src": "3187:27:3" + }, + { + "attributes": { + "functionReturnParameters": 853 + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1000, + "type": "function (bytes32) returns (bool)", + "value": "_deleteCredential" + }, + "id": 872, + "name": "Identifier", + "src": "3231:17:3" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 845, + "type": "bytes32", + "value": "_txnKey" + }, + "id": 873, + "name": "Identifier", + "src": "3249:7:3" + } + ], + "id": 874, + "name": "FunctionCall", + "src": "3231:26:3" + } + ], + "id": 875, + "name": "Return", + "src": "3224:33:3" } ], - "id": 874, + "id": 876, "name": "Block", - "src": "3047:188:3" + "src": "3069:195:3" } ], - "id": 875, + "id": 877, "name": "FunctionDefinition", - "src": "2974:261:3" + "src": "2974:290:3" }, { "attributes": { @@ -4042,7 +4072,7 @@ "constant": false, "indexed": false, "name": "_txnKey", - "scope": 881, + "scope": 883, "stateVariable": false, "storageLocation": "default", "type": "bytes32", @@ -4055,21 +4085,21 @@ "name": "bytes32", "type": "bytes32" }, - "id": 876, + "id": 878, "name": "ElementaryTypeName", - "src": "3265:7:3" + "src": "3294:7:3" } ], - "id": 877, + "id": 879, "name": "VariableDeclaration", - "src": "3265:15:3" + "src": "3294:15:3" }, { "attributes": { "constant": false, "indexed": false, "name": "count", - "scope": 881, + "scope": 883, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -4082,24 +4112,24 @@ "name": "uint", "type": "uint256" }, - "id": 878, + "id": 880, "name": "ElementaryTypeName", - "src": "3282:4:3" + "src": "3311:4:3" } ], - "id": 879, + "id": 881, "name": "VariableDeclaration", - "src": "3282:10:3" + "src": "3311:10:3" } ], - "id": 880, + "id": 882, "name": "ParameterList", - "src": "3264:29:3" + "src": "3293:29:3" } ], - "id": 881, + "id": 883, "name": "EventDefinition", - "src": "3241:53:3" + "src": "3270:53:3" }, { "attributes": { @@ -4108,7 +4138,7 @@ "isConstructor": false, "name": "deleteCredential", "payable": false, - "scope": 1113, + "scope": 1136, "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" @@ -4120,7 +4150,7 @@ "attributes": { "constant": false, "name": "_txnKey", - "scope": 908, + "scope": 931, "stateVariable": false, "storageLocation": "default", "type": "bytes32", @@ -4133,19 +4163,19 @@ "name": "bytes32", "type": "bytes32" }, - "id": 882, + "id": 884, "name": "ElementaryTypeName", - "src": "3361:7:3" + "src": "3390:7:3" } ], - "id": 883, + "id": 885, "name": "VariableDeclaration", - "src": "3361:15:3" + "src": "3390:15:3" } ], - "id": 884, + "id": 886, "name": "ParameterList", - "src": "3360:17:3" + "src": "3389:17:3" }, { "children": [ @@ -4153,7 +4183,7 @@ "attributes": { "constant": false, "name": "success", - "scope": 908, + "scope": 931, "stateVariable": false, "storageLocation": "default", "type": "bool", @@ -4166,19 +4196,19 @@ "name": "bool", "type": "bool" }, - "id": 889, + "id": 891, "name": "ElementaryTypeName", - "src": "3416:4:3" + "src": "3445:4:3" } ], - "id": 890, + "id": 892, "name": "VariableDeclaration", - "src": "3416:12:3" + "src": "3445:12:3" } ], - "id": 891, + "id": 893, "name": "ParameterList", - "src": "3415:14:3" + "src": "3444:14:3" }, { "children": [ @@ -4192,9 +4222,9 @@ "type": "modifier (address)", "value": "authorized" }, - "id": 885, + "id": 887, "name": "Identifier", - "src": "3378:10:3" + "src": "3407:10:3" }, { "attributes": { @@ -4214,115 +4244,374 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 2479, + "referencedDeclaration": 2502, "type": "msg", "value": "msg" }, - "id": 886, + "id": 888, "name": "Identifier", - "src": "3389:3:3" + "src": "3418:3:3" } ], - "id": 887, + "id": 889, "name": "MemberAccess", - "src": "3389:10:3" + "src": "3418:10:3" } ], - "id": 888, + "id": 890, "name": "ModifierInvocation", - "src": "3378:22:3" + "src": "3407:22:3" }, { "children": [ { + "attributes": { + "assignments": [ + 897 + ] + }, "children": [ + { + "attributes": { + "constant": false, + "name": "cred", + "scope": 931, + "stateVariable": false, + "storageLocation": "memory", + "type": "struct BadgeLibrary.Credential memory", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "contractScope": null, + "name": "BadgeLibrary.Credential", + "referencedDeclaration": 1844, + "type": "struct BadgeLibrary.Credential storage pointer" + }, + "id": 896, + "name": "UserDefinedTypeName", + "src": "3469:23:3" + } + ], + "id": 897, + "name": "VariableDeclaration", + "src": "3469:35:3" + }, { "attributes": { "argumentTypes": null, "isConstant": false, - "isLValue": false, + "isLValue": true, "isPure": false, "lValueRequested": false, - "operator": "=", - "type": "bool" + "type": "struct BadgeLibrary.Credential storage ref" }, "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "credentials", + "referencedDeclaration": 616, + "type": "mapping(bytes32 => struct BadgeLibrary.Credential storage ref)" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 628, + "type": "struct Holder.CredentialVault storage ref", + "value": "credentialVault" + }, + "id": 898, + "name": "Identifier", + "src": "3507:15:3" + } + ], + "id": 899, + "name": "MemberAccess", + "src": "3507:27:3" + }, { "attributes": { "argumentTypes": null, "overloadedDeclarations": [ null ], - "referencedDeclaration": 890, - "type": "bool", - "value": "success" + "referencedDeclaration": 885, + "type": "bytes32", + "value": "_txnKey" }, - "id": 892, + "id": 900, "name": "Identifier", - "src": "3440:7:3" - }, + "src": "3535:7:3" + } + ], + "id": 901, + "name": "IndexAccess", + "src": "3507:36:3" + } + ], + "id": 902, + "name": "VariableDeclarationStatement", + "src": "3469:74:3" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!", + "prefix": true, + "type": "bool" + }, + "children": [ { "attributes": { "argumentTypes": null, "isConstant": false, - "isLValue": false, + "isLValue": true, "isPure": false, - "isStructConstructorCall": false, "lValueRequested": false, - "names": [ - null - ], - "type": "bool", - "type_conversion": false + "member_name": "active", + "referencedDeclaration": 1843, + "type": "bool" }, "children": [ { "attributes": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], + "argumentTypes": null, "overloadedDeclarations": [ null ], - "referencedDeclaration": 977, - "type": "function (bytes32) returns (bool)", - "value": "_deleteCredential" + "referencedDeclaration": 897, + "type": "struct BadgeLibrary.Credential memory", + "value": "cred" }, - "id": 893, + "id": 903, "name": "Identifier", - "src": "3450:17:3" - }, + "src": "3557:4:3" + } + ], + "id": 904, + "name": "MemberAccess", + "src": "3557:11:3" + } + ], + "id": 905, + "name": "UnaryOperation", + "src": "3556:12:3" + }, + { + "children": [ + { + "children": [ { "attributes": { "argumentTypes": null, - "overloadedDeclarations": [ - null - ], - "referencedDeclaration": 883, - "type": "bytes32", - "value": "_txnKey" + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "bool" }, - "id": 894, - "name": "Identifier", - "src": "3468:7:3" + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 892, + "type": "bool", + "value": "success" + }, + "id": 906, + "name": "Identifier", + "src": "3582:7:3" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 877, + "type": "function (bytes32) returns (bool)", + "value": "rejectCredential" + }, + "id": 907, + "name": "Identifier", + "src": "3592:16:3" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 885, + "type": "bytes32", + "value": "_txnKey" + }, + "id": 908, + "name": "Identifier", + "src": "3609:7:3" + } + ], + "id": 909, + "name": "FunctionCall", + "src": "3592:25:3" + } + ], + "id": 910, + "name": "Assignment", + "src": "3582:35:3" } ], - "id": 895, - "name": "FunctionCall", - "src": "3450:26:3" + "id": 911, + "name": "ExpressionStatement", + "src": "3582:35:3" } ], - "id": 896, - "name": "Assignment", - "src": "3440:36:3" + "id": 912, + "name": "Block", + "src": "3570:58:3" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 892, + "type": "bool", + "value": "success" + }, + "id": 913, + "name": "Identifier", + "src": "3646:7:3" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1000, + "type": "function (bytes32) returns (bool)", + "value": "_deleteCredential" + }, + "id": 914, + "name": "Identifier", + "src": "3656:17:3" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 885, + "type": "bytes32", + "value": "_txnKey" + }, + "id": 915, + "name": "Identifier", + "src": "3674:7:3" + } + ], + "id": 916, + "name": "FunctionCall", + "src": "3656:26:3" + } + ], + "id": 917, + "name": "Assignment", + "src": "3646:36:3" + } + ], + "id": 918, + "name": "ExpressionStatement", + "src": "3646:36:3" + } + ], + "id": 919, + "name": "Block", + "src": "3634:59:3" } ], - "id": 897, - "name": "ExpressionStatement", - "src": "3440:36:3" + "id": 920, + "name": "IfStatement", + "src": "3553:140:3" }, { "children": [ @@ -4356,13 +4645,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 881, + "referencedDeclaration": 883, "type": "function (bytes32,uint256)", "value": "CredentialDeleted" }, - "id": 898, + "id": 921, "name": "Identifier", - "src": "3486:17:3" + "src": "3702:17:3" }, { "attributes": { @@ -4370,13 +4659,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 883, + "referencedDeclaration": 885, "type": "bytes32", "value": "_txnKey" }, - "id": 899, + "id": 922, "name": "Identifier", - "src": "3504:7:3" + "src": "3720:7:3" }, { "attributes": { @@ -4412,33 +4701,33 @@ "type": "struct Holder.CredentialVault storage ref", "value": "credentialVault" }, - "id": 900, + "id": 923, "name": "Identifier", - "src": "3513:15:3" + "src": "3729:15:3" } ], - "id": 901, + "id": 924, "name": "MemberAccess", - "src": "3513:20:3" + "src": "3729:20:3" } ], - "id": 902, + "id": 925, "name": "MemberAccess", - "src": "3513:27:3" + "src": "3729:27:3" } ], - "id": 903, + "id": 926, "name": "FunctionCall", - "src": "3486:55:3" + "src": "3702:55:3" } ], - "id": 904, + "id": 927, "name": "ExpressionStatement", - "src": "3486:55:3" + "src": "3702:55:3" }, { "attributes": { - "functionReturnParameters": 891 + "functionReturnParameters": 893 }, "children": [ { @@ -4447,28 +4736,28 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 890, + "referencedDeclaration": 892, "type": "bool", "value": "success" }, - "id": 905, + "id": 928, "name": "Identifier", - "src": "3558:7:3" + "src": "3774:7:3" } ], - "id": 906, + "id": 929, "name": "Return", - "src": "3551:14:3" + "src": "3767:14:3" } ], - "id": 907, + "id": 930, "name": "Block", - "src": "3430:142:3" + "src": "3459:329:3" } ], - "id": 908, + "id": 931, "name": "FunctionDefinition", - "src": "3335:237:3" + "src": "3364:424:3" }, { "attributes": { @@ -4480,7 +4769,7 @@ ], "name": "_deleteCredential", "payable": false, - "scope": 1113, + "scope": 1136, "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" @@ -4492,7 +4781,7 @@ "attributes": { "constant": false, "name": "_txnKey", - "scope": 977, + "scope": 1000, "stateVariable": false, "storageLocation": "default", "type": "bytes32", @@ -4505,19 +4794,19 @@ "name": "bytes32", "type": "bytes32" }, - "id": 909, + "id": 932, "name": "ElementaryTypeName", - "src": "3605:7:3" + "src": "3821:7:3" } ], - "id": 910, + "id": 933, "name": "VariableDeclaration", - "src": "3605:15:3" + "src": "3821:15:3" } ], - "id": 911, + "id": 934, "name": "ParameterList", - "src": "3604:17:3" + "src": "3820:17:3" }, { "children": [ @@ -4525,7 +4814,7 @@ "attributes": { "constant": false, "name": "success", - "scope": 977, + "scope": 1000, "stateVariable": false, "storageLocation": "default", "type": "bool", @@ -4538,19 +4827,19 @@ "name": "bool", "type": "bool" }, - "id": 912, + "id": 935, "name": "ElementaryTypeName", - "src": "3637:4:3" + "src": "3853:4:3" } ], - "id": 913, + "id": 936, "name": "VariableDeclaration", - "src": "3637:12:3" + "src": "3853:12:3" } ], - "id": 914, + "id": 937, "name": "ParameterList", - "src": "3636:14:3" + "src": "3852:14:3" }, { "children": [ @@ -4600,14 +4889,14 @@ "type": "struct Holder.CredentialVault storage ref", "value": "credentialVault" }, - "id": 915, + "id": 938, "name": "Identifier", - "src": "3668:15:3" + "src": "3884:15:3" } ], - "id": 916, + "id": 939, "name": "MemberAccess", - "src": "3668:27:3" + "src": "3884:27:3" }, { "attributes": { @@ -4615,33 +4904,33 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 910, + "referencedDeclaration": 933, "type": "bytes32", "value": "_txnKey" }, - "id": 917, + "id": 940, "name": "Identifier", - "src": "3696:7:3" + "src": "3912:7:3" } ], - "id": 918, + "id": 941, "name": "IndexAccess", - "src": "3668:36:3" + "src": "3884:36:3" } ], - "id": 919, + "id": 942, "name": "UnaryOperation", - "src": "3661:43:3" + "src": "3877:43:3" } ], - "id": 920, + "id": 943, "name": "ExpressionStatement", - "src": "3661:43:3" + "src": "3877:43:3" }, { "attributes": { "assignments": [ - 922 + 945 ] }, "children": [ @@ -4649,7 +4938,7 @@ "attributes": { "constant": false, "name": "rowToDelete", - "scope": 977, + "scope": 1000, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -4662,14 +4951,14 @@ "name": "uint", "type": "uint256" }, - "id": 921, + "id": 944, "name": "ElementaryTypeName", - "src": "3714:4:3" + "src": "3930:4:3" } ], - "id": 922, + "id": 945, "name": "VariableDeclaration", - "src": "3714:16:3" + "src": "3930:16:3" }, { "attributes": { @@ -4703,14 +4992,14 @@ "type": "struct Holder.CredentialVault storage ref", "value": "credentialVault" }, - "id": 923, + "id": 946, "name": "Identifier", - "src": "3733:15:3" + "src": "3949:15:3" } ], - "id": 924, + "id": 947, "name": "MemberAccess", - "src": "3733:24:3" + "src": "3949:24:3" }, { "attributes": { @@ -4718,28 +5007,28 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 910, + "referencedDeclaration": 933, "type": "bytes32", "value": "_txnKey" }, - "id": 925, + "id": 948, "name": "Identifier", - "src": "3758:7:3" + "src": "3974:7:3" } ], - "id": 926, + "id": 949, "name": "IndexAccess", - "src": "3733:33:3" + "src": "3949:33:3" } ], - "id": 927, + "id": 950, "name": "VariableDeclarationStatement", - "src": "3714:52:3" + "src": "3930:52:3" }, { "attributes": { "assignments": [ - 929 + 952 ] }, "children": [ @@ -4747,7 +5036,7 @@ "attributes": { "constant": false, "name": "rowToMove", - "scope": 977, + "scope": 1000, "stateVariable": false, "storageLocation": "default", "type": "bytes32", @@ -4760,14 +5049,14 @@ "name": "bytes32", "type": "bytes32" }, - "id": 928, + "id": 951, "name": "ElementaryTypeName", - "src": "3776:7:3" + "src": "3992:7:3" } ], - "id": 929, + "id": 952, "name": "VariableDeclaration", - "src": "3776:17:3" + "src": "3992:17:3" }, { "attributes": { @@ -4801,14 +5090,14 @@ "type": "struct Holder.CredentialVault storage ref", "value": "credentialVault" }, - "id": 930, + "id": 953, "name": "Identifier", - "src": "3796:15:3" + "src": "4012:15:3" } ], - "id": 931, + "id": 954, "name": "MemberAccess", - "src": "3796:20:3" + "src": "4012:20:3" }, { "attributes": { @@ -4859,19 +5148,19 @@ "type": "struct Holder.CredentialVault storage ref", "value": "credentialVault" }, - "id": 932, + "id": 955, "name": "Identifier", - "src": "3817:15:3" + "src": "4033:15:3" } ], - "id": 933, + "id": 956, "name": "MemberAccess", - "src": "3817:20:3" + "src": "4033:20:3" } ], - "id": 934, + "id": 957, "name": "MemberAccess", - "src": "3817:27:3" + "src": "4033:27:3" }, { "attributes": { @@ -4886,24 +5175,24 @@ "type": "int_const 1", "value": "1" }, - "id": 935, + "id": 958, "name": "Literal", - "src": "3845:1:3" + "src": "4061:1:3" } ], - "id": 936, + "id": 959, "name": "BinaryOperation", - "src": "3817:29:3" + "src": "4033:29:3" } ], - "id": 937, + "id": 960, "name": "IndexAccess", - "src": "3796:51:3" + "src": "4012:51:3" } ], - "id": 938, + "id": 961, "name": "VariableDeclarationStatement", - "src": "3776:71:3" + "src": "3992:71:3" }, { "children": [ @@ -4950,14 +5239,14 @@ "type": "struct Holder.CredentialVault storage ref", "value": "credentialVault" }, - "id": 939, + "id": 962, "name": "Identifier", - "src": "3857:15:3" + "src": "4073:15:3" } ], - "id": 942, + "id": 965, "name": "MemberAccess", - "src": "3857:24:3" + "src": "4073:24:3" }, { "attributes": { @@ -4965,18 +5254,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 929, + "referencedDeclaration": 952, "type": "bytes32", "value": "rowToMove" }, - "id": 941, + "id": 964, "name": "Identifier", - "src": "3882:9:3" + "src": "4098:9:3" } ], - "id": 943, + "id": 966, "name": "IndexAccess", - "src": "3857:35:3" + "src": "4073:35:3" }, { "attributes": { @@ -4984,23 +5273,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 922, + "referencedDeclaration": 945, "type": "uint256", "value": "rowToDelete" }, - "id": 944, + "id": 967, "name": "Identifier", - "src": "3895:11:3" + "src": "4111:11:3" } ], - "id": 945, + "id": 968, "name": "Assignment", - "src": "3857:49:3" + "src": "4073:49:3" } ], - "id": 946, + "id": 969, "name": "ExpressionStatement", - "src": "3857:49:3" + "src": "4073:49:3" }, { "children": [ @@ -5047,14 +5336,14 @@ "type": "struct Holder.CredentialVault storage ref", "value": "credentialVault" }, - "id": 947, + "id": 970, "name": "Identifier", - "src": "3916:15:3" + "src": "4132:15:3" } ], - "id": 950, + "id": 973, "name": "MemberAccess", - "src": "3916:20:3" + "src": "4132:20:3" }, { "attributes": { @@ -5062,18 +5351,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 922, + "referencedDeclaration": 945, "type": "uint256", "value": "rowToDelete" }, - "id": 949, + "id": 972, "name": "Identifier", - "src": "3937:11:3" + "src": "4153:11:3" } ], - "id": 951, + "id": 974, "name": "IndexAccess", - "src": "3916:33:3" + "src": "4132:33:3" }, { "attributes": { @@ -5081,23 +5370,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 929, + "referencedDeclaration": 952, "type": "bytes32", "value": "rowToMove" }, - "id": 952, + "id": 975, "name": "Identifier", - "src": "3952:9:3" + "src": "4168:9:3" } ], - "id": 953, + "id": 976, "name": "Assignment", - "src": "3916:45:3" + "src": "4132:45:3" } ], - "id": 954, + "id": 977, "name": "ExpressionStatement", - "src": "3916:45:3" + "src": "4132:45:3" }, { "children": [ @@ -5147,29 +5436,29 @@ "type": "struct Holder.CredentialVault storage ref", "value": "credentialVault" }, - "id": 955, + "id": 978, "name": "Identifier", - "src": "3971:15:3" + "src": "4187:15:3" } ], - "id": 958, + "id": 981, "name": "MemberAccess", - "src": "3971:20:3" + "src": "4187:20:3" } ], - "id": 959, + "id": 982, "name": "MemberAccess", - "src": "3971:27:3" + "src": "4187:27:3" } ], - "id": 960, + "id": 983, "name": "UnaryOperation", - "src": "3971:29:3" + "src": "4187:29:3" } ], - "id": 961, + "id": 984, "name": "ExpressionStatement", - "src": "3971:29:3" + "src": "4187:29:3" }, { "children": [ @@ -5217,14 +5506,14 @@ "type": "struct Holder.CredentialVault storage ref", "value": "credentialVault" }, - "id": 962, + "id": 985, "name": "Identifier", - "src": "4017:15:3" + "src": "4233:15:3" } ], - "id": 963, + "id": 986, "name": "MemberAccess", - "src": "4017:24:3" + "src": "4233:24:3" }, { "attributes": { @@ -5232,28 +5521,28 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 910, + "referencedDeclaration": 933, "type": "bytes32", "value": "_txnKey" }, - "id": 964, + "id": 987, "name": "Identifier", - "src": "4042:7:3" + "src": "4258:7:3" } ], - "id": 965, + "id": 988, "name": "IndexAccess", - "src": "4017:33:3" + "src": "4233:33:3" } ], - "id": 966, + "id": 989, "name": "UnaryOperation", - "src": "4010:40:3" + "src": "4226:40:3" } ], - "id": 967, + "id": 990, "name": "ExpressionStatement", - "src": "4010:40:3" + "src": "4226:40:3" }, { "children": [ @@ -5301,14 +5590,14 @@ "type": "struct Holder.CredentialVault storage ref", "value": "credentialVault" }, - "id": 968, + "id": 991, "name": "Identifier", - "src": "4067:15:3" + "src": "4283:15:3" } ], - "id": 969, + "id": 992, "name": "MemberAccess", - "src": "4067:27:3" + "src": "4283:27:3" }, { "attributes": { @@ -5316,32 +5605,32 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 910, + "referencedDeclaration": 933, "type": "bytes32", "value": "_txnKey" }, - "id": 970, + "id": 993, "name": "Identifier", - "src": "4095:7:3" + "src": "4311:7:3" } ], - "id": 971, + "id": 994, "name": "IndexAccess", - "src": "4067:36:3" + "src": "4283:36:3" } ], - "id": 972, + "id": 995, "name": "UnaryOperation", - "src": "4060:43:3" + "src": "4276:43:3" } ], - "id": 973, + "id": 996, "name": "ExpressionStatement", - "src": "4060:43:3" + "src": "4276:43:3" }, { "attributes": { - "functionReturnParameters": 914 + "functionReturnParameters": 937 }, "children": [ { @@ -5357,24 +5646,24 @@ "type": "bool", "value": "true" }, - "id": 974, + "id": 997, "name": "Literal", - "src": "4120:4:3" + "src": "4336:4:3" } ], - "id": 975, + "id": 998, "name": "Return", - "src": "4113:11:3" + "src": "4329:11:3" } ], - "id": 976, + "id": 999, "name": "Block", - "src": "3651:480:3" + "src": "3867:480:3" } ], - "id": 977, + "id": 1000, "name": "FunctionDefinition", - "src": "3578:553:3" + "src": "3794:553:3" }, { "attributes": { @@ -5386,7 +5675,7 @@ ], "name": "getCredential", "payable": false, - "scope": 1113, + "scope": 1136, "stateMutability": "view", "superFunction": null, "visibility": "public" @@ -5398,7 +5687,7 @@ "attributes": { "constant": false, "name": "_txnKey", - "scope": 1043, + "scope": 1066, "stateVariable": false, "storageLocation": "default", "type": "bytes32", @@ -5411,19 +5700,19 @@ "name": "bytes32", "type": "bytes32" }, - "id": 978, + "id": 1001, "name": "ElementaryTypeName", - "src": "4252:7:3" + "src": "4468:7:3" } ], - "id": 979, + "id": 1002, "name": "VariableDeclaration", - "src": "4252:15:3" + "src": "4468:15:3" } ], - "id": 980, + "id": 1003, "name": "ParameterList", - "src": "4251:17:3" + "src": "4467:17:3" }, { "children": [ @@ -5431,7 +5720,7 @@ "attributes": { "constant": false, "name": "_issuer", - "scope": 1043, + "scope": 1066, "stateVariable": false, "storageLocation": "default", "type": "address", @@ -5444,20 +5733,20 @@ "name": "address", "type": "address" }, - "id": 981, + "id": 1004, "name": "ElementaryTypeName", - "src": "4304:7:3" + "src": "4520:7:3" } ], - "id": 982, + "id": 1005, "name": "VariableDeclaration", - "src": "4304:15:3" + "src": "4520:15:3" }, { "attributes": { "constant": false, "name": "_description", - "scope": 1043, + "scope": 1066, "stateVariable": false, "storageLocation": "default", "type": "string memory", @@ -5470,20 +5759,20 @@ "name": "string", "type": "string storage pointer" }, - "id": 983, + "id": 1006, "name": "ElementaryTypeName", - "src": "4329:6:3" + "src": "4545:6:3" } ], - "id": 984, + "id": 1007, "name": "VariableDeclaration", - "src": "4329:19:3" + "src": "4545:19:3" }, { "attributes": { "constant": false, "name": "_name", - "scope": 1043, + "scope": 1066, "stateVariable": false, "storageLocation": "default", "type": "string memory", @@ -5496,20 +5785,20 @@ "name": "string", "type": "string storage pointer" }, - "id": 985, + "id": 1008, "name": "ElementaryTypeName", - "src": "4358:6:3" + "src": "4574:6:3" } ], - "id": 986, + "id": 1009, "name": "VariableDeclaration", - "src": "4358:12:3" + "src": "4574:12:3" }, { "attributes": { "constant": false, "name": "_image", - "scope": 1043, + "scope": 1066, "stateVariable": false, "storageLocation": "default", "type": "string memory", @@ -5522,20 +5811,20 @@ "name": "string", "type": "string storage pointer" }, - "id": 987, + "id": 1010, "name": "ElementaryTypeName", - "src": "4380:6:3" + "src": "4596:6:3" } ], - "id": 988, + "id": 1011, "name": "VariableDeclaration", - "src": "4380:13:3" + "src": "4596:13:3" }, { "attributes": { "constant": false, "name": "_version", - "scope": 1043, + "scope": 1066, "stateVariable": false, "storageLocation": "default", "type": "string memory", @@ -5548,20 +5837,20 @@ "name": "string", "type": "string storage pointer" }, - "id": 989, + "id": 1012, "name": "ElementaryTypeName", - "src": "4403:6:3" + "src": "4619:6:3" } ], - "id": 990, + "id": 1013, "name": "VariableDeclaration", - "src": "4403:15:3" + "src": "4619:15:3" }, { "attributes": { "constant": false, "name": "_expires", - "scope": 1043, + "scope": 1066, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -5574,20 +5863,20 @@ "name": "uint", "type": "uint256" }, - "id": 991, + "id": 1014, "name": "ElementaryTypeName", - "src": "4428:4:3" + "src": "4644:4:3" } ], - "id": 992, + "id": 1015, "name": "VariableDeclaration", - "src": "4428:13:3" + "src": "4644:13:3" }, { "attributes": { "constant": false, "name": "_recipient", - "scope": 1043, + "scope": 1066, "stateVariable": false, "storageLocation": "default", "type": "address", @@ -5600,20 +5889,20 @@ "name": "address", "type": "address" }, - "id": 993, + "id": 1016, "name": "ElementaryTypeName", - "src": "4451:7:3" + "src": "4667:7:3" } ], - "id": 994, + "id": 1017, "name": "VariableDeclaration", - "src": "4451:18:3" + "src": "4667:18:3" }, { "attributes": { "constant": false, "name": "txnKey", - "scope": 1043, + "scope": 1066, "stateVariable": false, "storageLocation": "default", "type": "bytes32", @@ -5626,20 +5915,20 @@ "name": "bytes32", "type": "bytes32" }, - "id": 995, + "id": 1018, "name": "ElementaryTypeName", - "src": "4479:7:3" + "src": "4695:7:3" } ], - "id": 996, + "id": 1019, "name": "VariableDeclaration", - "src": "4479:14:3" + "src": "4695:14:3" }, { "attributes": { "constant": false, "name": "_active", - "scope": 1043, + "scope": 1066, "stateVariable": false, "storageLocation": "default", "type": "bool", @@ -5652,19 +5941,19 @@ "name": "bool", "type": "bool" }, - "id": 997, + "id": 1020, "name": "ElementaryTypeName", - "src": "4503:4:3" + "src": "4719:4:3" } ], - "id": 998, + "id": 1021, "name": "VariableDeclaration", - "src": "4503:12:3" + "src": "4719:12:3" } ], - "id": 999, + "id": 1022, "name": "ParameterList", - "src": "4294:227:3" + "src": "4510:227:3" }, { "children": [ @@ -5696,13 +5985,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 2482, + "referencedDeclaration": 2505, "type": "function (bool) pure", "value": "require" }, - "id": 1000, + "id": 1023, "name": "Identifier", - "src": "4532:7:3" + "src": "4748:7:3" }, { "attributes": { @@ -5753,19 +6042,19 @@ "type": "struct Holder.CredentialVault storage ref", "value": "credentialVault" }, - "id": 1001, + "id": 1024, "name": "Identifier", - "src": "4540:15:3" + "src": "4756:15:3" } ], - "id": 1002, + "id": 1025, "name": "MemberAccess", - "src": "4540:20:3" + "src": "4756:20:3" } ], - "id": 1003, + "id": 1026, "name": "MemberAccess", - "src": "4540:27:3" + "src": "4756:27:3" }, { "attributes": { @@ -5780,29 +6069,29 @@ "type": "int_const 0", "value": "0" }, - "id": 1004, + "id": 1027, "name": "Literal", - "src": "4570:1:3" + "src": "4786:1:3" } ], - "id": 1005, + "id": 1028, "name": "BinaryOperation", - "src": "4540:31:3" + "src": "4756:31:3" } ], - "id": 1006, + "id": 1029, "name": "FunctionCall", - "src": "4532:40:3" + "src": "4748:40:3" } ], - "id": 1007, + "id": 1030, "name": "ExpressionStatement", - "src": "4532:40:3" + "src": "4748:40:3" }, { "attributes": { "assignments": [ - 1011 + 1034 ] }, "children": [ @@ -5810,7 +6099,7 @@ "attributes": { "constant": false, "name": "cred", - "scope": 1043, + "scope": 1066, "stateVariable": false, "storageLocation": "memory", "type": "struct BadgeLibrary.Credential memory", @@ -5822,17 +6111,17 @@ "attributes": { "contractScope": null, "name": "BadgeLibrary.Credential", - "referencedDeclaration": 1821, + "referencedDeclaration": 1844, "type": "struct BadgeLibrary.Credential storage pointer" }, - "id": 1010, + "id": 1033, "name": "UserDefinedTypeName", - "src": "4582:23:3" + "src": "4798:23:3" } ], - "id": 1011, + "id": 1034, "name": "VariableDeclaration", - "src": "4582:35:3" + "src": "4798:35:3" }, { "attributes": { @@ -5866,14 +6155,14 @@ "type": "struct Holder.CredentialVault storage ref", "value": "credentialVault" }, - "id": 1012, + "id": 1035, "name": "Identifier", - "src": "4620:15:3" + "src": "4836:15:3" } ], - "id": 1013, + "id": 1036, "name": "MemberAccess", - "src": "4620:27:3" + "src": "4836:27:3" }, { "attributes": { @@ -5881,27 +6170,27 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 979, + "referencedDeclaration": 1002, "type": "bytes32", "value": "_txnKey" }, - "id": 1014, + "id": 1037, "name": "Identifier", - "src": "4648:7:3" + "src": "4864:7:3" } ], - "id": 1015, + "id": 1038, "name": "IndexAccess", - "src": "4620:36:3" + "src": "4836:36:3" } ], - "id": 1016, + "id": 1039, "name": "VariableDeclarationStatement", - "src": "4582:74:3" + "src": "4798:74:3" }, { "attributes": { - "functionReturnParameters": 999 + "functionReturnParameters": 1022 }, "children": [ { @@ -5923,7 +6212,7 @@ "isPure": false, "lValueRequested": false, "member_name": "issuer", - "referencedDeclaration": 1801, + "referencedDeclaration": 1824, "type": "address" }, "children": [ @@ -5935,7 +6224,7 @@ "isPure": false, "lValueRequested": false, "member_name": "badge", - "referencedDeclaration": 1812, + "referencedDeclaration": 1835, "type": "struct BadgeLibrary.Badge memory" }, "children": [ @@ -5945,23 +6234,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1011, + "referencedDeclaration": 1034, "type": "struct BadgeLibrary.Credential memory", "value": "cred" }, - "id": 1017, + "id": 1040, "name": "Identifier", - "src": "4687:4:3" + "src": "4903:4:3" } ], - "id": 1018, + "id": 1041, "name": "MemberAccess", - "src": "4687:10:3" + "src": "4903:10:3" } ], - "id": 1019, + "id": 1042, "name": "MemberAccess", - "src": "4687:17:3" + "src": "4903:17:3" }, { "attributes": { @@ -5971,7 +6260,7 @@ "isPure": false, "lValueRequested": false, "member_name": "description", - "referencedDeclaration": 1803, + "referencedDeclaration": 1826, "type": "string memory" }, "children": [ @@ -5983,7 +6272,7 @@ "isPure": false, "lValueRequested": false, "member_name": "badge", - "referencedDeclaration": 1812, + "referencedDeclaration": 1835, "type": "struct BadgeLibrary.Badge memory" }, "children": [ @@ -5993,23 +6282,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1011, + "referencedDeclaration": 1034, "type": "struct BadgeLibrary.Credential memory", "value": "cred" }, - "id": 1020, + "id": 1043, "name": "Identifier", - "src": "4718:4:3" + "src": "4934:4:3" } ], - "id": 1021, + "id": 1044, "name": "MemberAccess", - "src": "4718:10:3" + "src": "4934:10:3" } ], - "id": 1022, + "id": 1045, "name": "MemberAccess", - "src": "4718:22:3" + "src": "4934:22:3" }, { "attributes": { @@ -6019,7 +6308,7 @@ "isPure": false, "lValueRequested": false, "member_name": "name", - "referencedDeclaration": 1805, + "referencedDeclaration": 1828, "type": "string memory" }, "children": [ @@ -6031,7 +6320,7 @@ "isPure": false, "lValueRequested": false, "member_name": "badge", - "referencedDeclaration": 1812, + "referencedDeclaration": 1835, "type": "struct BadgeLibrary.Badge memory" }, "children": [ @@ -6041,23 +6330,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1011, + "referencedDeclaration": 1034, "type": "struct BadgeLibrary.Credential memory", "value": "cred" }, - "id": 1023, + "id": 1046, "name": "Identifier", - "src": "4754:4:3" + "src": "4970:4:3" } ], - "id": 1024, + "id": 1047, "name": "MemberAccess", - "src": "4754:10:3" + "src": "4970:10:3" } ], - "id": 1025, + "id": 1048, "name": "MemberAccess", - "src": "4754:15:3" + "src": "4970:15:3" }, { "attributes": { @@ -6067,7 +6356,7 @@ "isPure": false, "lValueRequested": false, "member_name": "image", - "referencedDeclaration": 1807, + "referencedDeclaration": 1830, "type": "string memory" }, "children": [ @@ -6079,7 +6368,7 @@ "isPure": false, "lValueRequested": false, "member_name": "badge", - "referencedDeclaration": 1812, + "referencedDeclaration": 1835, "type": "struct BadgeLibrary.Badge memory" }, "children": [ @@ -6089,23 +6378,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1011, + "referencedDeclaration": 1034, "type": "struct BadgeLibrary.Credential memory", "value": "cred" }, - "id": 1026, + "id": 1049, "name": "Identifier", - "src": "4783:4:3" + "src": "4999:4:3" } ], - "id": 1027, + "id": 1050, "name": "MemberAccess", - "src": "4783:10:3" + "src": "4999:10:3" } ], - "id": 1028, + "id": 1051, "name": "MemberAccess", - "src": "4783:16:3" + "src": "4999:16:3" }, { "attributes": { @@ -6115,7 +6404,7 @@ "isPure": false, "lValueRequested": false, "member_name": "version", - "referencedDeclaration": 1809, + "referencedDeclaration": 1832, "type": "string memory" }, "children": [ @@ -6127,7 +6416,7 @@ "isPure": false, "lValueRequested": false, "member_name": "badge", - "referencedDeclaration": 1812, + "referencedDeclaration": 1835, "type": "struct BadgeLibrary.Badge memory" }, "children": [ @@ -6137,23 +6426,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1011, + "referencedDeclaration": 1034, "type": "struct BadgeLibrary.Credential memory", "value": "cred" }, - "id": 1029, + "id": 1052, "name": "Identifier", - "src": "4813:4:3" + "src": "5029:4:3" } ], - "id": 1030, + "id": 1053, "name": "MemberAccess", - "src": "4813:10:3" + "src": "5029:10:3" } ], - "id": 1031, + "id": 1054, "name": "MemberAccess", - "src": "4813:18:3" + "src": "5029:18:3" }, { "attributes": { @@ -6163,7 +6452,7 @@ "isPure": false, "lValueRequested": false, "member_name": "expires", - "referencedDeclaration": 1814, + "referencedDeclaration": 1837, "type": "uint256" }, "children": [ @@ -6173,18 +6462,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1011, + "referencedDeclaration": 1034, "type": "struct BadgeLibrary.Credential memory", "value": "cred" }, - "id": 1032, + "id": 1055, "name": "Identifier", - "src": "4845:4:3" + "src": "5061:4:3" } ], - "id": 1033, + "id": 1056, "name": "MemberAccess", - "src": "4845:12:3" + "src": "5061:12:3" }, { "attributes": { @@ -6194,7 +6483,7 @@ "isPure": false, "lValueRequested": false, "member_name": "recipient", - "referencedDeclaration": 1816, + "referencedDeclaration": 1839, "type": "address" }, "children": [ @@ -6204,18 +6493,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1011, + "referencedDeclaration": 1034, "type": "struct BadgeLibrary.Credential memory", "value": "cred" }, - "id": 1034, + "id": 1057, "name": "Identifier", - "src": "4871:4:3" + "src": "5087:4:3" } ], - "id": 1035, + "id": 1058, "name": "MemberAccess", - "src": "4871:14:3" + "src": "5087:14:3" }, { "attributes": { @@ -6225,7 +6514,7 @@ "isPure": false, "lValueRequested": false, "member_name": "txnKey", - "referencedDeclaration": 1818, + "referencedDeclaration": 1841, "type": "bytes32" }, "children": [ @@ -6235,18 +6524,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1011, + "referencedDeclaration": 1034, "type": "struct BadgeLibrary.Credential memory", "value": "cred" }, - "id": 1036, + "id": 1059, "name": "Identifier", - "src": "4899:4:3" + "src": "5115:4:3" } ], - "id": 1037, + "id": 1060, "name": "MemberAccess", - "src": "4899:11:3" + "src": "5115:11:3" }, { "attributes": { @@ -6256,7 +6545,7 @@ "isPure": false, "lValueRequested": false, "member_name": "active", - "referencedDeclaration": 1820, + "referencedDeclaration": 1843, "type": "bool" }, "children": [ @@ -6266,38 +6555,38 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1011, + "referencedDeclaration": 1034, "type": "struct BadgeLibrary.Credential memory", "value": "cred" }, - "id": 1038, + "id": 1061, "name": "Identifier", - "src": "4924:4:3" + "src": "5140:4:3" } ], - "id": 1039, + "id": 1062, "name": "MemberAccess", - "src": "4924:11:3" + "src": "5140:11:3" } ], - "id": 1040, + "id": 1063, "name": "TupleExpression", - "src": "4673:272:3" + "src": "4889:272:3" } ], - "id": 1041, + "id": 1064, "name": "Return", - "src": "4666:279:3" + "src": "4882:279:3" } ], - "id": 1042, + "id": 1065, "name": "Block", - "src": "4522:430:3" + "src": "4738:430:3" } ], - "id": 1043, + "id": 1066, "name": "FunctionDefinition", - "src": "4229:723:3" + "src": "4445:723:3" }, { "attributes": { @@ -6309,7 +6598,7 @@ ], "name": "getTxnKey", "payable": false, - "scope": 1113, + "scope": 1136, "stateMutability": "view", "superFunction": null, "visibility": "public" @@ -6321,7 +6610,7 @@ "attributes": { "constant": false, "name": "_index", - "scope": 1056, + "scope": 1079, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -6334,19 +6623,19 @@ "name": "uint", "type": "uint256" }, - "id": 1044, + "id": 1067, "name": "ElementaryTypeName", - "src": "5117:4:3" + "src": "5333:4:3" } ], - "id": 1045, + "id": 1068, "name": "VariableDeclaration", - "src": "5117:11:3" + "src": "5333:11:3" } ], - "id": 1046, + "id": 1069, "name": "ParameterList", - "src": "5116:13:3" + "src": "5332:13:3" }, { "children": [ @@ -6354,7 +6643,7 @@ "attributes": { "constant": false, "name": "txnKey", - "scope": 1056, + "scope": 1079, "stateVariable": false, "storageLocation": "default", "type": "bytes32", @@ -6367,25 +6656,25 @@ "name": "bytes32", "type": "bytes32" }, - "id": 1047, + "id": 1070, "name": "ElementaryTypeName", - "src": "5154:7:3" + "src": "5370:7:3" } ], - "id": 1048, + "id": 1071, "name": "VariableDeclaration", - "src": "5154:14:3" + "src": "5370:14:3" } ], - "id": 1049, + "id": 1072, "name": "ParameterList", - "src": "5153:16:3" + "src": "5369:16:3" }, { "children": [ { "attributes": { - "functionReturnParameters": 1049 + "functionReturnParameters": 1072 }, "children": [ { @@ -6420,14 +6709,14 @@ "type": "struct Holder.CredentialVault storage ref", "value": "credentialVault" }, - "id": 1050, + "id": 1073, "name": "Identifier", - "src": "5187:15:3" + "src": "5403:15:3" } ], - "id": 1051, + "id": 1074, "name": "MemberAccess", - "src": "5187:20:3" + "src": "5403:20:3" }, { "attributes": { @@ -6435,33 +6724,33 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1045, + "referencedDeclaration": 1068, "type": "uint256", "value": "_index" }, - "id": 1052, + "id": 1075, "name": "Identifier", - "src": "5208:6:3" + "src": "5424:6:3" } ], - "id": 1053, + "id": 1076, "name": "IndexAccess", - "src": "5187:28:3" + "src": "5403:28:3" } ], - "id": 1054, + "id": 1077, "name": "Return", - "src": "5180:35:3" + "src": "5396:35:3" } ], - "id": 1055, + "id": 1078, "name": "Block", - "src": "5170:52:3" + "src": "5386:52:3" } ], - "id": 1056, + "id": 1079, "name": "FunctionDefinition", - "src": "5098:124:3" + "src": "5314:124:3" }, { "attributes": { @@ -6473,7 +6762,7 @@ ], "name": "getNumberOfCredentials", "payable": false, - "scope": 1113, + "scope": 1136, "stateMutability": "view", "superFunction": null, "visibility": "public" @@ -6486,9 +6775,9 @@ ] }, "children": [], - "id": 1057, + "id": 1080, "name": "ParameterList", - "src": "5298:2:3" + "src": "5514:2:3" }, { "children": [ @@ -6496,7 +6785,7 @@ "attributes": { "constant": false, "name": "count", - "scope": 1066, + "scope": 1089, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -6509,25 +6798,25 @@ "name": "uint", "type": "uint256" }, - "id": 1058, + "id": 1081, "name": "ElementaryTypeName", - "src": "5325:4:3" + "src": "5541:4:3" } ], - "id": 1059, + "id": 1082, "name": "VariableDeclaration", - "src": "5325:10:3" + "src": "5541:10:3" } ], - "id": 1060, + "id": 1083, "name": "ParameterList", - "src": "5324:12:3" + "src": "5540:12:3" }, { "children": [ { "attributes": { - "functionReturnParameters": 1060 + "functionReturnParameters": 1083 }, "children": [ { @@ -6564,34 +6853,34 @@ "type": "struct Holder.CredentialVault storage ref", "value": "credentialVault" }, - "id": 1061, + "id": 1084, "name": "Identifier", - "src": "5354:15:3" + "src": "5570:15:3" } ], - "id": 1062, + "id": 1085, "name": "MemberAccess", - "src": "5354:20:3" + "src": "5570:20:3" } ], - "id": 1063, + "id": 1086, "name": "MemberAccess", - "src": "5354:27:3" + "src": "5570:27:3" } ], - "id": 1064, + "id": 1087, "name": "Return", - "src": "5347:34:3" + "src": "5563:34:3" } ], - "id": 1065, + "id": 1088, "name": "Block", - "src": "5337:51:3" + "src": "5553:51:3" } ], - "id": 1066, + "id": 1089, "name": "FunctionDefinition", - "src": "5267:121:3" + "src": "5483:121:3" }, { "attributes": { @@ -6603,7 +6892,7 @@ ], "name": "getNumberOfPendingCredentials", "payable": false, - "scope": 1113, + "scope": 1136, "stateMutability": "view", "superFunction": null, "visibility": "public" @@ -6616,9 +6905,9 @@ ] }, "children": [], - "id": 1067, + "id": 1090, "name": "ParameterList", - "src": "5479:2:3" + "src": "5695:2:3" }, { "children": [ @@ -6626,7 +6915,7 @@ "attributes": { "constant": false, "name": "count", - "scope": 1075, + "scope": 1098, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -6639,25 +6928,25 @@ "name": "uint", "type": "uint256" }, - "id": 1068, + "id": 1091, "name": "ElementaryTypeName", - "src": "5506:4:3" + "src": "5722:4:3" } ], - "id": 1069, + "id": 1092, "name": "VariableDeclaration", - "src": "5506:10:3" + "src": "5722:10:3" } ], - "id": 1070, + "id": 1093, "name": "ParameterList", - "src": "5505:12:3" + "src": "5721:12:3" }, { "children": [ { "attributes": { - "functionReturnParameters": 1070 + "functionReturnParameters": 1093 }, "children": [ { @@ -6682,29 +6971,29 @@ "type": "struct Holder.CredentialVault storage ref", "value": "credentialVault" }, - "id": 1071, + "id": 1094, "name": "Identifier", - "src": "5535:15:3" + "src": "5751:15:3" } ], - "id": 1072, + "id": 1095, "name": "MemberAccess", - "src": "5535:33:3" + "src": "5751:33:3" } ], - "id": 1073, + "id": 1096, "name": "Return", - "src": "5528:40:3" + "src": "5744:40:3" } ], - "id": 1074, + "id": 1097, "name": "Block", - "src": "5518:57:3" + "src": "5734:57:3" } ], - "id": 1075, + "id": 1098, "name": "FunctionDefinition", - "src": "5441:134:3" + "src": "5657:134:3" }, { "attributes": { @@ -6716,7 +7005,7 @@ ], "name": "recomputePOIHash", "payable": false, - "scope": 1113, + "scope": 1136, "stateMutability": "view", "superFunction": null, "visibility": "public" @@ -6728,7 +7017,7 @@ "attributes": { "constant": false, "name": "_txnKey", - "scope": 1112, + "scope": 1135, "stateVariable": false, "storageLocation": "default", "type": "bytes32", @@ -6741,19 +7030,19 @@ "name": "bytes32", "type": "bytes32" }, - "id": 1076, + "id": 1099, "name": "ElementaryTypeName", - "src": "5607:7:3" + "src": "5823:7:3" } ], - "id": 1077, + "id": 1100, "name": "VariableDeclaration", - "src": "5607:15:3" + "src": "5823:15:3" } ], - "id": 1078, + "id": 1101, "name": "ParameterList", - "src": "5606:17:3" + "src": "5822:17:3" }, { "children": [ @@ -6761,7 +7050,7 @@ "attributes": { "constant": false, "name": "poiHash", - "scope": 1112, + "scope": 1135, "stateVariable": false, "storageLocation": "default", "type": "bytes32", @@ -6774,26 +7063,26 @@ "name": "bytes32", "type": "bytes32" }, - "id": 1079, + "id": 1102, "name": "ElementaryTypeName", - "src": "5648:7:3" + "src": "5864:7:3" } ], - "id": 1080, + "id": 1103, "name": "VariableDeclaration", - "src": "5648:15:3" + "src": "5864:15:3" } ], - "id": 1081, + "id": 1104, "name": "ParameterList", - "src": "5647:17:3" + "src": "5863:17:3" }, { "children": [ { "attributes": { "assignments": [ - 1085 + 1108 ] }, "children": [ @@ -6801,7 +7090,7 @@ "attributes": { "constant": false, "name": "credential", - "scope": 1112, + "scope": 1135, "stateVariable": false, "storageLocation": "memory", "type": "struct BadgeLibrary.Credential memory", @@ -6813,17 +7102,17 @@ "attributes": { "contractScope": null, "name": "BadgeLibrary.Credential", - "referencedDeclaration": 1821, + "referencedDeclaration": 1844, "type": "struct BadgeLibrary.Credential storage pointer" }, - "id": 1084, + "id": 1107, "name": "UserDefinedTypeName", - "src": "5675:23:3" + "src": "5891:23:3" } ], - "id": 1085, + "id": 1108, "name": "VariableDeclaration", - "src": "5675:41:3" + "src": "5891:41:3" }, { "attributes": { @@ -6857,14 +7146,14 @@ "type": "struct Holder.CredentialVault storage ref", "value": "credentialVault" }, - "id": 1086, + "id": 1109, "name": "Identifier", - "src": "5719:15:3" + "src": "5935:15:3" } ], - "id": 1087, + "id": 1110, "name": "MemberAccess", - "src": "5719:27:3" + "src": "5935:27:3" }, { "attributes": { @@ -6872,27 +7161,27 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1077, + "referencedDeclaration": 1100, "type": "bytes32", "value": "_txnKey" }, - "id": 1088, + "id": 1111, "name": "Identifier", - "src": "5747:7:3" + "src": "5963:7:3" } ], - "id": 1089, + "id": 1112, "name": "IndexAccess", - "src": "5719:36:3" + "src": "5935:36:3" } ], - "id": 1090, + "id": 1113, "name": "VariableDeclarationStatement", - "src": "5675:80:3" + "src": "5891:80:3" }, { "attributes": { - "functionReturnParameters": 1081 + "functionReturnParameters": 1104 }, "children": [ { @@ -6945,9 +7234,9 @@ "type": "function (address,string memory,string memory,string memory,string memory,address) pure returns (bytes32)", "value": "getIntegrityHash" }, - "id": 1091, + "id": 1114, "name": "Identifier", - "src": "5772:16:3" + "src": "5988:16:3" }, { "attributes": { @@ -6957,7 +7246,7 @@ "isPure": false, "lValueRequested": false, "member_name": "issuer", - "referencedDeclaration": 1801, + "referencedDeclaration": 1824, "type": "address" }, "children": [ @@ -6969,7 +7258,7 @@ "isPure": false, "lValueRequested": false, "member_name": "badge", - "referencedDeclaration": 1812, + "referencedDeclaration": 1835, "type": "struct BadgeLibrary.Badge memory" }, "children": [ @@ -6979,23 +7268,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1085, + "referencedDeclaration": 1108, "type": "struct BadgeLibrary.Credential memory", "value": "credential" }, - "id": 1092, + "id": 1115, "name": "Identifier", - "src": "5802:10:3" + "src": "6018:10:3" } ], - "id": 1093, + "id": 1116, "name": "MemberAccess", - "src": "5802:16:3" + "src": "6018:16:3" } ], - "id": 1094, + "id": 1117, "name": "MemberAccess", - "src": "5802:23:3" + "src": "6018:23:3" }, { "attributes": { @@ -7005,7 +7294,7 @@ "isPure": false, "lValueRequested": false, "member_name": "description", - "referencedDeclaration": 1803, + "referencedDeclaration": 1826, "type": "string memory" }, "children": [ @@ -7017,7 +7306,7 @@ "isPure": false, "lValueRequested": false, "member_name": "badge", - "referencedDeclaration": 1812, + "referencedDeclaration": 1835, "type": "struct BadgeLibrary.Badge memory" }, "children": [ @@ -7027,23 +7316,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1085, + "referencedDeclaration": 1108, "type": "struct BadgeLibrary.Credential memory", "value": "credential" }, - "id": 1095, + "id": 1118, "name": "Identifier", - "src": "5839:10:3" + "src": "6055:10:3" } ], - "id": 1096, + "id": 1119, "name": "MemberAccess", - "src": "5839:16:3" + "src": "6055:16:3" } ], - "id": 1097, + "id": 1120, "name": "MemberAccess", - "src": "5839:28:3" + "src": "6055:28:3" }, { "attributes": { @@ -7053,7 +7342,7 @@ "isPure": false, "lValueRequested": false, "member_name": "name", - "referencedDeclaration": 1805, + "referencedDeclaration": 1828, "type": "string memory" }, "children": [ @@ -7065,7 +7354,7 @@ "isPure": false, "lValueRequested": false, "member_name": "badge", - "referencedDeclaration": 1812, + "referencedDeclaration": 1835, "type": "struct BadgeLibrary.Badge memory" }, "children": [ @@ -7075,23 +7364,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1085, + "referencedDeclaration": 1108, "type": "struct BadgeLibrary.Credential memory", "value": "credential" }, - "id": 1098, + "id": 1121, "name": "Identifier", - "src": "5881:10:3" + "src": "6097:10:3" } ], - "id": 1099, + "id": 1122, "name": "MemberAccess", - "src": "5881:16:3" + "src": "6097:16:3" } ], - "id": 1100, + "id": 1123, "name": "MemberAccess", - "src": "5881:21:3" + "src": "6097:21:3" }, { "attributes": { @@ -7101,7 +7390,7 @@ "isPure": false, "lValueRequested": false, "member_name": "image", - "referencedDeclaration": 1807, + "referencedDeclaration": 1830, "type": "string memory" }, "children": [ @@ -7113,7 +7402,7 @@ "isPure": false, "lValueRequested": false, "member_name": "badge", - "referencedDeclaration": 1812, + "referencedDeclaration": 1835, "type": "struct BadgeLibrary.Badge memory" }, "children": [ @@ -7123,23 +7412,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1085, + "referencedDeclaration": 1108, "type": "struct BadgeLibrary.Credential memory", "value": "credential" }, - "id": 1101, + "id": 1124, "name": "Identifier", - "src": "5916:10:3" + "src": "6132:10:3" } ], - "id": 1102, + "id": 1125, "name": "MemberAccess", - "src": "5916:16:3" + "src": "6132:16:3" } ], - "id": 1103, + "id": 1126, "name": "MemberAccess", - "src": "5916:22:3" + "src": "6132:22:3" }, { "attributes": { @@ -7149,7 +7438,7 @@ "isPure": false, "lValueRequested": false, "member_name": "version", - "referencedDeclaration": 1809, + "referencedDeclaration": 1832, "type": "string memory" }, "children": [ @@ -7161,7 +7450,7 @@ "isPure": false, "lValueRequested": false, "member_name": "badge", - "referencedDeclaration": 1812, + "referencedDeclaration": 1835, "type": "struct BadgeLibrary.Badge memory" }, "children": [ @@ -7171,23 +7460,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1085, + "referencedDeclaration": 1108, "type": "struct BadgeLibrary.Credential memory", "value": "credential" }, - "id": 1104, + "id": 1127, "name": "Identifier", - "src": "5952:10:3" + "src": "6168:10:3" } ], - "id": 1105, + "id": 1128, "name": "MemberAccess", - "src": "5952:16:3" + "src": "6168:16:3" } ], - "id": 1106, + "id": 1129, "name": "MemberAccess", - "src": "5952:24:3" + "src": "6168:24:3" }, { "attributes": { @@ -7197,7 +7486,7 @@ "isPure": false, "lValueRequested": false, "member_name": "recipient", - "referencedDeclaration": 1816, + "referencedDeclaration": 1839, "type": "address" }, "children": [ @@ -7207,48 +7496,48 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1085, + "referencedDeclaration": 1108, "type": "struct BadgeLibrary.Credential memory", "value": "credential" }, - "id": 1107, + "id": 1130, "name": "Identifier", - "src": "5990:10:3" + "src": "6206:10:3" } ], - "id": 1108, + "id": 1131, "name": "MemberAccess", - "src": "5990:20:3" + "src": "6206:20:3" } ], - "id": 1109, + "id": 1132, "name": "FunctionCall", - "src": "5772:248:3" + "src": "5988:248:3" } ], - "id": 1110, + "id": 1133, "name": "Return", - "src": "5765:255:3" + "src": "5981:255:3" } ], - "id": 1111, + "id": 1134, "name": "Block", - "src": "5665:362:3" + "src": "5881:362:3" } ], - "id": 1112, + "id": 1135, "name": "FunctionDefinition", - "src": "5581:446:3" + "src": "5797:446:3" } ], - "id": 1113, + "id": 1136, "name": "ContractDefinition", - "src": "102:5927:3" + "src": "102:6143:3" } ], - "id": 1114, + "id": 1137, "name": "SourceUnit", - "src": "0:6030:3" + "src": "0:6246:3" }, "compiler": { "name": "solc", @@ -7256,5 +7545,5 @@ }, "networks": {}, "schemaVersion": "1.0.1", - "updatedAt": "2018-01-14T11:06:54.638Z" + "updatedAt": "2018-01-16T07:16:25.769Z" } \ No newline at end of file diff --git a/build/contracts/Issuer.json b/build/contracts/Issuer.json index 7d170bc..abc62a1 100644 --- a/build/contracts/Issuer.json +++ b/build/contracts/Issuer.json @@ -772,8 +772,8 @@ "type": "event" } ], - "bytecode": "0x606060405234156200001057600080fd5b604051620044e5380380620044e58339810160405280805190602001909190805182019190602001805182019190602001805190602001909190505083808080806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050506000600781905550505082600a9080519060200190620000b49291906200015a565b5081600b9080519060200190620000cd9291906200015a565b5030600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050505062000209565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200019d57805160ff1916838001178555620001ce565b82800160010185558215620001ce579182015b82811115620001cd578251825591602001919060010190620001b0565b5b509050620001dd9190620001e1565b5090565b6200020691905b8082111562000202576000816000905550600101620001e8565b5090565b90565b6142cc80620002196000396000f300606060405260043610610180576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063029a28581461018557806306fdde031461020e5780630c43ae9c1461029c5780630decfdea146102f15780631041eb9614610381578063164f0a4e146104115780631ddb6af6146104a957806324ddd51a146106295780633557b6c314610652578063368a1709146106b55780633b57391a1461073a5780634294857f146107735780635600f04f146107b25780635629aec91461084057806359c293f1146108b45780635a9b0b89146108f35780635c9d3a9414610a5357806372ee19a214610b7957806377002fcf14610bee5780637c59fda014610e05578063a5aef15b14610e2e578063affed0e014610e55578063b610922114610e7e578063b75c7dc614610ef3578063be47aa0914610f1a578063c1eabde914610f53578063d8c0941b14610fcc578063eb92948114611096578063f851a4401461112e578063f9afc24214611183575b600080fd5b341561019057600080fd5b61020c60048080356000191690602001909190803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190505061120e565b005b341561021957600080fd5b61022161177e565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610261578082015181840152602081019050610246565b50505050905090810190601f16801561028e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156102a757600080fd5b6102af61181c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156102fc57600080fd5b610316600480803560001916906020019091905050611842565b60405180856000191660001916815260200184600019166000191681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018215151515815260200194505050505060405180910390f35b341561038c57600080fd5b6103a660048080356000191690602001909190505061189f565b60405180856000191660001916815260200184600019166000191681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018215151515815260200194505050505060405180910390f35b341561041c57600080fd5b61048b600480803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061195d565b60405180826000191660001916815260200191505060405180910390f35b34156104b457600080fd5b61060b600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611a0d565b60405180826000191660001916815260200191505060405180910390f35b341561063457600080fd5b61063c611c03565b6040518082815260200191505060405180910390f35b341561065d57600080fd5b6106736004808035906020019091905050611c13565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156106c057600080fd5b610738600480803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611cf0565b005b341561074557600080fd5b610771600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611f6c565b005b341561077e57600080fd5b6107986004808035600019169060200190919050506121f0565b604051808215151515815260200191505060405180910390f35b34156107bd57600080fd5b6107c5612225565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156108055780820151818401526020810190506107ea565b50505050905090810190601f1680156108325780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561084b57600080fd5b61088460048080356000191690602001909190803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506122c3565b60405180841515151581526020018315151515815260200182151515158152602001935050505060405180910390f35b34156108bf57600080fd5b6108d5600480803590602001909190505061242a565b60405180826000191660001916815260200191505060405180910390f35b34156108fe57600080fd5b610906612451565b604051808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018060200180602001838103835285818151815260200191508051906020019080838360005b838110156109ae578082015181840152602081019050610993565b50505050905090810190601f1680156109db5780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b83811015610a145780820151818401526020810190506109f9565b50505050905090810190601f168015610a415780820380516001836020036101000a031916815260200191505b50965050505050505060405180910390f35b3415610a5e57600080fd5b610b77600480803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919050506125f3565b005b3415610b8457600080fd5b610bd4600480803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050612982565b604051808215151515815260200191505060405180910390f35b3415610bf957600080fd5b610c136004808035600019169060200190919050506129f2565b604051808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001806020018060200180602001858103855289818151815260200191508051906020019080838360005b83811015610c91578082015181840152602081019050610c76565b50505050905090810190601f168015610cbe5780820380516001836020036101000a031916815260200191505b50858103845288818151815260200191508051906020019080838360005b83811015610cf7578082015181840152602081019050610cdc565b50505050905090810190601f168015610d245780820380516001836020036101000a031916815260200191505b50858103835287818151815260200191508051906020019080838360005b83811015610d5d578082015181840152602081019050610d42565b50505050905090810190601f168015610d8a5780820380516001836020036101000a031916815260200191505b50858103825286818151815260200191508051906020019080838360005b83811015610dc3578082015181840152602081019050610da8565b50505050905090810190601f168015610df05780820380516001836020036101000a031916815260200191505b50995050505050505050505060405180910390f35b3415610e1057600080fd5b610e18612dc6565b6040518082815260200191505060405180910390f35b3415610e3957600080fd5b610e53600480803560001916906020019091905050612dd3565b005b3415610e6057600080fd5b610e68612f75565b6040518082815260200191505060405180910390f35b3415610e8957600080fd5b610ed9600480803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050612f7b565b604051808215151515815260200191505060405180910390f35b3415610efe57600080fd5b610f186004808035600019169060200190919050506132c5565b005b3415610f2557600080fd5b610f51600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050613467565b005b3415610f5e57600080fd5b610fae600480803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919050506135fa565b60405180826000191660001916815260200191505060405180910390f35b3415610fd757600080fd5b61101060048080356000191690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050613666565b604051808315151515815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561105a57808201518184015260208101905061103f565b50505050905090810190601f1680156110875780820380516001836020036101000a031916815260200191505b50935050505060405180910390f35b34156110a157600080fd5b611110600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190505061386e565b60405180826000191660001916815260200191505060405180910390f35b341561113957600080fd5b611141613928565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561118e57600080fd5b6111ba600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061394d565b604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200182151515158152602001935050505060405180910390f35b6000611218614084565b60003360008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614806112c45750600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160009054906101000a900460ff165b90507f7fca019a0a52664785803f352d793a992f66c4affa261b3daf127976e7ad67998282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a180151561134157600080fd5b60076000815480929190600101919050555061135c866135fa565b945060036000016000866000191660001916815260200190815260200160002060a060405190810160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156114775780601f1061144c57610100808354040283529160200191611477565b820191906000526020600020905b81548152906001019060200180831161145a57829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156115195780601f106114ee57610100808354040283529160200191611519565b820191906000526020600020905b8154815290600101906020018083116114fc57829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156115bb5780601f10611590576101008083540402835291602001916115bb565b820191906000526020600020905b81548152906001019060200180831161159e57829003601f168201915b50505050508152602001600482018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561165d5780601f106116325761010080835404028352916020019161165d565b820191906000526020600020905b81548152906001019060200180831161164057829003601f168201915b505050505081525050935061168a846000015185602001518660400151876060015188608001518c611a0d565b925060806040519081016040528089600019168152602001846000191681526020018873ffffffffffffffffffffffffffffffffffffffff16815260200160001515815250600660008a60001916600019168152602001908152602001600020600082015181600001906000191690556020820151816001019060001916905560408201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060608201518160020160146101000a81548160ff0219169083151502179055509050505050505050505050565b600a8054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156118145780601f106117e957610100808354040283529160200191611814565b820191906000526020600020905b8154815290600101906020018083116117f757829003601f168201915b505050505081565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60066020528060005260406000206000915090508060000154908060010154908060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060020160149054906101000a900460ff16905084565b600080600080600660008660001916600019168152602001908152602001600020600001546006600087600019166000191681526020019081526020016000206001015460066000886000191660001916815260200190815260200160002060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660066000896000191660001916815260200190815260200160002060020160149054906101000a900460ff1693509350935093509193509193565b600082826040518083805190602001908083835b6020831015156119965780518252602082019150602081019050602083039250611971565b6001836020036101000a0380198251168184511680821785525050505050509050018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c01000000000000000000000000028152601401925050506040518091039020905092915050565b6000868686868686604051808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140186805190602001908083835b602083101515611a8b5780518252602082019150602081019050602083039250611a66565b6001836020036101000a03801982511681845116808217855250505050505090500185805190602001908083835b602083101515611ade5780518252602082019150602081019050602083039250611ab9565b6001836020036101000a03801982511681845116808217855250505050505090500184805190602001908083835b602083101515611b315780518252602082019150602081019050602083039250611b0c565b6001836020036101000a03801982511681845116808217855250505050505090500183805190602001908083835b602083101515611b845780518252602082019150602081019050602083039250611b5f565b6001836020036101000a0380198251168184511680821785525050505050509050018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014019650505050505050604051809103902090509695505050505050565b6000600360020180549050905090565b600060016000600284815481101515611c2857fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160009054906101000a900460ff1615611ce657600282815481101515611cb357fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050611ceb565b600090505b919050565b6000803360008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480611d9d5750600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160009054906101000a900460ff165b90507f7fca019a0a52664785803f352d793a992f66c4affa261b3daf127976e7ad67998282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a1801515611e1a57600080fd5b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663be440ff56000604051602001526040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1515611ea857600080fd5b6102c65a03f11515611eb957600080fd5b505050604051805190501515611ece57600080fd5b600085111515611ee057849350611eeb565b62093a808502420193505b611f4a600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000368080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505061386e565b9250611f58878588866139a4565b611f6383878961120e565b50505050505050565b3360008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161490507f7fca019a0a52664785803f352d793a992f66c4affa261b3daf127976e7ad67998282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a180151561203c57600080fd5b6060604051908101604052808473ffffffffffffffffffffffffffffffffffffffff16815260200160016002805480600101828161207a91906140e2565b9160005260206000209001600088909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555003815260200160011515815250600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506020820151816001015560408201518160020160006101000a81548160ff0219169083151502179055509050507f7fd215c956537f33ef9064c457003d82df8562a7b03e1f896c0b39c7abc8355883604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1505050565b600060066000836000191660001916815260200190815260200160002060020160149054906101000a900460ff169050919050565b600b8054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156122bb5780601f10612290576101008083540402835291602001916122bb565b820191906000526020600020905b81548152906001019060200180831161229e57829003601f168201915b505050505081565b60008060008060008060008060006122da8b61189f565b9550955095509550600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141561232757600160008098509850985061241d565b821561233c578260008098509850985061241d565b8991508173ffffffffffffffffffffffffffffffffffffffff16636bcdaa33876000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b15156123be57600080fd5b6102c65a03f115156123cf57600080fd5b5050506040518051905090508285600019168260001916148573ffffffffffffffffffffffffffffffffffffffff168c73ffffffffffffffffffffffffffffffffffffffff16149850985098505b5050505050509250925092565b600060036002018281548110151561243e57fe5b9060005260206000209001549050919050565b60008061245c61410e565b61246461410e565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600a600b818054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156125425780601f1061251757610100808354040283529160200191612542565b820191906000526020600020905b81548152906001019060200180831161252557829003601f168201915b50505050509150808054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156125de5780601f106125b3576101008083540402835291602001916125de565b820191906000526020600020905b8154815290600101906020018083116125c157829003601f168201915b50505050509050935093509350935090919293565b6000806125fe614084565b3360008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614806126a85750600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160009054906101000a900460ff165b90507f7fca019a0a52664785803f352d793a992f66c4affa261b3daf127976e7ad67998282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a180151561272557600080fd5b8761272f81612982565b151561273a57600080fd5b612743896135fa565b955060016003600201805480600101828161275e9190614122565b916000526020600020900160008990919091509060001916905503945060a0604051908101604052803073ffffffffffffffffffffffffffffffffffffffff1681526020018b81526020018a81526020018981526020018881525093508360036000016000886000191660001916815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550602082015181600101908051906020019061283d92919061414e565b50604082015181600201908051906020019061285a92919061414e565b50606082015181600301908051906020019061287792919061414e565b50608082015181600401908051906020019061289492919061414e565b509050508460036001016000886000191660001916815260200190815260200160002081905550836000015173ffffffffffffffffffffffffffffffffffffffff167fde74f67f0ccaf379531f5b3884d0afb87e86192a992d99e7222390f8870a0b5385604001516040518080602001828103825283818151815260200191508051906020019080838360005b8381101561293c578082015181840152602081019050612921565b50505050905090810190601f1680156129695780820380516001836020036101000a031916815260200191505b509250505060405180910390a250505050505050505050565b60008061298e836135fa565b9050600060036002018054905014806129ea575080600019166003600201600360010160008460001916600019168152602001908152602001600020548154811015156129d757fe5b9060005260206000209001546000191614155b915050919050565b60006129fc61410e565b612a0461410e565b612a0c61410e565b612a1461410e565b612a1c614084565b866000600360020180549050118015612a7757508060001916600360020160036001016000846000191660001916815260200190815260200160002054815481101515612a6557fe5b90600052602060002090015460001916145b1515612a8257600080fd5b60036000016000896000191660001916815260200190815260200160002060a060405190810160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015612b9b5780601f10612b7057610100808354040283529160200191612b9b565b820191906000526020600020905b815481529060010190602001808311612b7e57829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015612c3d5780601f10612c1257610100808354040283529160200191612c3d565b820191906000526020600020905b815481529060010190602001808311612c2057829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015612cdf5780601f10612cb457610100808354040283529160200191612cdf565b820191906000526020600020905b815481529060010190602001808311612cc257829003601f168201915b50505050508152602001600482018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015612d815780601f10612d5657610100808354040283529160200191612d81565b820191906000526020600020905b815481529060010190602001808311612d6457829003601f168201915b50505050508152505091508160000151826020015183604001518460600151856080015183935082925081915080905096509650965096509650505091939590929450565b6000600280549050905090565b3360008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480612e7d5750600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160009054906101000a900460ff165b90507f7fca019a0a52664785803f352d793a992f66c4affa261b3daf127976e7ad67998282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a1801515612efa57600080fd5b600060066000856000191660001916815260200190815260200160002060020160146101000a81548160ff0219169083151502179055507fd1e55fd73bb60d490f023f5239b9c0ca41f4503cca514ab5c7c8649a188afdd38360405180826000191660001916815260200191505060405180910390a1505050565b60075481565b6000806000803360008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16148061302b5750600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160009054906101000a900460ff165b90507f7fca019a0a52664785803f352d793a992f66c4affa261b3daf127976e7ad67998282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a18015156130a857600080fd5b6130b1876135fa565b945060036001016000866000191660001916815260200190815260200160002054935060036002016001600360020180549050038154811015156130f157fe5b906000526020600020900154925083600360010160008560001916600019168152602001908152602001600020819055508260036002018581548110151561313557fe5b90600052602060002090018160001916905550600360020180548091906001900361316091906141ce565b50600360000160008660001916600019168152602001908152602001600020600080820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556001820160006131b791906141fa565b6002820160006131c791906141fa565b6003820160006131d791906141fa565b6004820160006131e791906141fa565b5050600360010160008660001916600019168152602001908152602001600020600090557f25011d6c52f8dd436cbad877a1e1bfa99b3fc7b3df1c4f7b68d6f6403e943a51876003600201805490506040518080602001838152602001828103825284818151815260200191508051906020019080838360005b8381101561327c578082015181840152602081019050613261565b50505050905090810190601f1680156132a95780820380516001836020036101000a031916815260200191505b50935050505060405180910390a1600195505050505050919050565b3360008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16148061336f5750600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160009054906101000a900460ff165b90507f7fca019a0a52664785803f352d793a992f66c4affa261b3daf127976e7ad67998282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a18015156133ec57600080fd5b600160066000856000191660001916815260200190815260200160002060020160146101000a81548160ff0219169083151502179055507f3cc2375f3fc7711ba27361cde93880f578742f9f050acee766bed662d117ba728360405180826000191660001916815260200191505060405180910390a1505050565b3360008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161490507f7fca019a0a52664785803f352d793a992f66c4affa261b3daf127976e7ad67998282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a180151561353757600080fd5b6000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160006101000a81548160ff0219169083151502179055507f56a53756e1db2ff35a90edee9bd205b4b2bb8633ee3d6a53a5e85d5b46f0e9dc83604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1505050565b6000816040518082805190602001908083835b602083101515613632578051825260208201915060208101905060208303925061360d565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209050919050565b600061367061410e565b600080600061367f87876122c3565b92509250925082156136f6576000606060405190810160405280602681526020017f496e76616c69642063726564656e7469616c3a2063726564656e7469616c207281526020017f65766f6b6564000000000000000000000000000000000000000000000000000081525080905094509450613864565b80151561378d5780608060405190810160405280604581526020017f496e76616c696420726563697069656e743a20726563697069656e7420646f6581526020017f73206e6f74206d61746368206f726967696e616c207472616e73616374696f6e81526020017f206461746100000000000000000000000000000000000000000000000000000081525080905094509450613864565b8115156138245781608060405190810160405280605381526020017f496e76616c6964206461746120696e746567726974793a206461746120696e2081526020017f63726564656e7469616c20646f6573206e6f74206d61746368206f726967696e81526020017f616c207472616e73616374696f6e20646174610000000000000000000000000081525080905094509450613864565b60016040805190810160405280601381526020017f43726564656e7469616c2069732076616c696400000000000000000000000000815250809050945094505b5050509250929050565b60008282600754604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140183805190602001908083835b6020831015156138eb57805182526020820191506020810190506020830392506138c6565b6001836020036101000a03801982511681845116808217855250505050505090500182815260200193505050506040518091039020905092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60016020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154908060020160009054906101000a900460ff16905083565b6139ac614084565b6000600360000160006139be886135fa565b6000191660001916815260200190815260200160002060a060405190810160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015613acf5780601f10613aa457610100808354040283529160200191613acf565b820191906000526020600020905b815481529060010190602001808311613ab257829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015613b715780601f10613b4657610100808354040283529160200191613b71565b820191906000526020600020905b815481529060010190602001808311613b5457829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015613c135780601f10613be857610100808354040283529160200191613c13565b820191906000526020600020905b815481529060010190602001808311613bf657829003601f168201915b50505050508152602001600482018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015613cb55780601f10613c8a57610100808354040283529160200191613cb5565b820191906000526020600020905b815481529060010190602001808311613c9857829003601f168201915b5050505050815250509150600073ffffffffffffffffffffffffffffffffffffffff16826000015173ffffffffffffffffffffffffffffffffffffffff1614151515613d0057600080fd5b8390508073ffffffffffffffffffffffffffffffffffffffff16634e3943e7836000015184602001518560400151866060015187608001518b8b8b6040518963ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001806020018060200180602001806020018881526020018773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001866000191660001916815260200185810385528c818151815260200191508051906020019080838360005b83811015613e2a578082015181840152602081019050613e0f565b50505050905090810190601f168015613e575780820380516001836020036101000a031916815260200191505b5085810384528b818151815260200191508051906020019080838360005b83811015613e90578082015181840152602081019050613e75565b50505050905090810190601f168015613ebd5780820380516001836020036101000a031916815260200191505b5085810383528a818151815260200191508051906020019080838360005b83811015613ef6578082015181840152602081019050613edb565b50505050905090810190601f168015613f235780820380516001836020036101000a031916815260200191505b50858103825289818151815260200191508051906020019080838360005b83811015613f5c578082015181840152602081019050613f41565b50505050905090810190601f168015613f895780820380516001836020036101000a031916815260200191505b509c50505050505050505050505050600060405180830381600087803b1515613fb157600080fd5b6102c65a03f11515613fc257600080fd5b5050508373ffffffffffffffffffffffffffffffffffffffff167fba451c931e2011b181517e87b4faa9ded9887fd9fdc41479f2e4ed86c0ce300183604001516040518080602001828103825283818151815260200191508051906020019080838360005b83811015614042578082015181840152602081019050614027565b50505050905090810190601f16801561406f5780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505050505050565b60a060405190810160405280600073ffffffffffffffffffffffffffffffffffffffff1681526020016140b5614242565b81526020016140c2614242565b81526020016140cf614242565b81526020016140dc614242565b81525090565b815481835581811511614109578183600052602060002091820191016141089190614256565b5b505050565b602060405190810160405280600081525090565b81548183558181151161414957818360005260206000209182019101614148919061427b565b5b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061418f57805160ff19168380011785556141bd565b828001600101855582156141bd579182015b828111156141bc5782518255916020019190600101906141a1565b5b5090506141ca9190614256565b5090565b8154818355818115116141f5578183600052602060002091820191016141f4919061427b565b5b505050565b50805460018160011615610100020316600290046000825580601f10614220575061423f565b601f01602090049060005260206000209081019061423e9190614256565b5b50565b602060405190810160405280600081525090565b61427891905b8082111561427457600081600090555060010161425c565b5090565b90565b61429d91905b80821115614299576000816000905550600101614281565b5090565b905600a165627a7a7230582086a31c2b38ab95e1903279d4a8ff08625a88f5b7c26d2494b494610d71dd967c0029", - "deployedBytecode": "0x606060405260043610610180576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063029a28581461018557806306fdde031461020e5780630c43ae9c1461029c5780630decfdea146102f15780631041eb9614610381578063164f0a4e146104115780631ddb6af6146104a957806324ddd51a146106295780633557b6c314610652578063368a1709146106b55780633b57391a1461073a5780634294857f146107735780635600f04f146107b25780635629aec91461084057806359c293f1146108b45780635a9b0b89146108f35780635c9d3a9414610a5357806372ee19a214610b7957806377002fcf14610bee5780637c59fda014610e05578063a5aef15b14610e2e578063affed0e014610e55578063b610922114610e7e578063b75c7dc614610ef3578063be47aa0914610f1a578063c1eabde914610f53578063d8c0941b14610fcc578063eb92948114611096578063f851a4401461112e578063f9afc24214611183575b600080fd5b341561019057600080fd5b61020c60048080356000191690602001909190803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190505061120e565b005b341561021957600080fd5b61022161177e565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610261578082015181840152602081019050610246565b50505050905090810190601f16801561028e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156102a757600080fd5b6102af61181c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156102fc57600080fd5b610316600480803560001916906020019091905050611842565b60405180856000191660001916815260200184600019166000191681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018215151515815260200194505050505060405180910390f35b341561038c57600080fd5b6103a660048080356000191690602001909190505061189f565b60405180856000191660001916815260200184600019166000191681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018215151515815260200194505050505060405180910390f35b341561041c57600080fd5b61048b600480803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061195d565b60405180826000191660001916815260200191505060405180910390f35b34156104b457600080fd5b61060b600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611a0d565b60405180826000191660001916815260200191505060405180910390f35b341561063457600080fd5b61063c611c03565b6040518082815260200191505060405180910390f35b341561065d57600080fd5b6106736004808035906020019091905050611c13565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156106c057600080fd5b610738600480803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611cf0565b005b341561074557600080fd5b610771600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611f6c565b005b341561077e57600080fd5b6107986004808035600019169060200190919050506121f0565b604051808215151515815260200191505060405180910390f35b34156107bd57600080fd5b6107c5612225565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156108055780820151818401526020810190506107ea565b50505050905090810190601f1680156108325780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561084b57600080fd5b61088460048080356000191690602001909190803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506122c3565b60405180841515151581526020018315151515815260200182151515158152602001935050505060405180910390f35b34156108bf57600080fd5b6108d5600480803590602001909190505061242a565b60405180826000191660001916815260200191505060405180910390f35b34156108fe57600080fd5b610906612451565b604051808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018060200180602001838103835285818151815260200191508051906020019080838360005b838110156109ae578082015181840152602081019050610993565b50505050905090810190601f1680156109db5780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b83811015610a145780820151818401526020810190506109f9565b50505050905090810190601f168015610a415780820380516001836020036101000a031916815260200191505b50965050505050505060405180910390f35b3415610a5e57600080fd5b610b77600480803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919050506125f3565b005b3415610b8457600080fd5b610bd4600480803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050612982565b604051808215151515815260200191505060405180910390f35b3415610bf957600080fd5b610c136004808035600019169060200190919050506129f2565b604051808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001806020018060200180602001858103855289818151815260200191508051906020019080838360005b83811015610c91578082015181840152602081019050610c76565b50505050905090810190601f168015610cbe5780820380516001836020036101000a031916815260200191505b50858103845288818151815260200191508051906020019080838360005b83811015610cf7578082015181840152602081019050610cdc565b50505050905090810190601f168015610d245780820380516001836020036101000a031916815260200191505b50858103835287818151815260200191508051906020019080838360005b83811015610d5d578082015181840152602081019050610d42565b50505050905090810190601f168015610d8a5780820380516001836020036101000a031916815260200191505b50858103825286818151815260200191508051906020019080838360005b83811015610dc3578082015181840152602081019050610da8565b50505050905090810190601f168015610df05780820380516001836020036101000a031916815260200191505b50995050505050505050505060405180910390f35b3415610e1057600080fd5b610e18612dc6565b6040518082815260200191505060405180910390f35b3415610e3957600080fd5b610e53600480803560001916906020019091905050612dd3565b005b3415610e6057600080fd5b610e68612f75565b6040518082815260200191505060405180910390f35b3415610e8957600080fd5b610ed9600480803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050612f7b565b604051808215151515815260200191505060405180910390f35b3415610efe57600080fd5b610f186004808035600019169060200190919050506132c5565b005b3415610f2557600080fd5b610f51600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050613467565b005b3415610f5e57600080fd5b610fae600480803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919050506135fa565b60405180826000191660001916815260200191505060405180910390f35b3415610fd757600080fd5b61101060048080356000191690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050613666565b604051808315151515815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561105a57808201518184015260208101905061103f565b50505050905090810190601f1680156110875780820380516001836020036101000a031916815260200191505b50935050505060405180910390f35b34156110a157600080fd5b611110600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190505061386e565b60405180826000191660001916815260200191505060405180910390f35b341561113957600080fd5b611141613928565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561118e57600080fd5b6111ba600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061394d565b604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200182151515158152602001935050505060405180910390f35b6000611218614084565b60003360008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614806112c45750600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160009054906101000a900460ff165b90507f7fca019a0a52664785803f352d793a992f66c4affa261b3daf127976e7ad67998282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a180151561134157600080fd5b60076000815480929190600101919050555061135c866135fa565b945060036000016000866000191660001916815260200190815260200160002060a060405190810160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156114775780601f1061144c57610100808354040283529160200191611477565b820191906000526020600020905b81548152906001019060200180831161145a57829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156115195780601f106114ee57610100808354040283529160200191611519565b820191906000526020600020905b8154815290600101906020018083116114fc57829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156115bb5780601f10611590576101008083540402835291602001916115bb565b820191906000526020600020905b81548152906001019060200180831161159e57829003601f168201915b50505050508152602001600482018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561165d5780601f106116325761010080835404028352916020019161165d565b820191906000526020600020905b81548152906001019060200180831161164057829003601f168201915b505050505081525050935061168a846000015185602001518660400151876060015188608001518c611a0d565b925060806040519081016040528089600019168152602001846000191681526020018873ffffffffffffffffffffffffffffffffffffffff16815260200160001515815250600660008a60001916600019168152602001908152602001600020600082015181600001906000191690556020820151816001019060001916905560408201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060608201518160020160146101000a81548160ff0219169083151502179055509050505050505050505050565b600a8054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156118145780601f106117e957610100808354040283529160200191611814565b820191906000526020600020905b8154815290600101906020018083116117f757829003601f168201915b505050505081565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60066020528060005260406000206000915090508060000154908060010154908060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060020160149054906101000a900460ff16905084565b600080600080600660008660001916600019168152602001908152602001600020600001546006600087600019166000191681526020019081526020016000206001015460066000886000191660001916815260200190815260200160002060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660066000896000191660001916815260200190815260200160002060020160149054906101000a900460ff1693509350935093509193509193565b600082826040518083805190602001908083835b6020831015156119965780518252602082019150602081019050602083039250611971565b6001836020036101000a0380198251168184511680821785525050505050509050018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c01000000000000000000000000028152601401925050506040518091039020905092915050565b6000868686868686604051808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140186805190602001908083835b602083101515611a8b5780518252602082019150602081019050602083039250611a66565b6001836020036101000a03801982511681845116808217855250505050505090500185805190602001908083835b602083101515611ade5780518252602082019150602081019050602083039250611ab9565b6001836020036101000a03801982511681845116808217855250505050505090500184805190602001908083835b602083101515611b315780518252602082019150602081019050602083039250611b0c565b6001836020036101000a03801982511681845116808217855250505050505090500183805190602001908083835b602083101515611b845780518252602082019150602081019050602083039250611b5f565b6001836020036101000a0380198251168184511680821785525050505050509050018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014019650505050505050604051809103902090509695505050505050565b6000600360020180549050905090565b600060016000600284815481101515611c2857fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160009054906101000a900460ff1615611ce657600282815481101515611cb357fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050611ceb565b600090505b919050565b6000803360008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480611d9d5750600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160009054906101000a900460ff165b90507f7fca019a0a52664785803f352d793a992f66c4affa261b3daf127976e7ad67998282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a1801515611e1a57600080fd5b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663be440ff56000604051602001526040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1515611ea857600080fd5b6102c65a03f11515611eb957600080fd5b505050604051805190501515611ece57600080fd5b600085111515611ee057849350611eeb565b62093a808502420193505b611f4a600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000368080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505061386e565b9250611f58878588866139a4565b611f6383878961120e565b50505050505050565b3360008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161490507f7fca019a0a52664785803f352d793a992f66c4affa261b3daf127976e7ad67998282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a180151561203c57600080fd5b6060604051908101604052808473ffffffffffffffffffffffffffffffffffffffff16815260200160016002805480600101828161207a91906140e2565b9160005260206000209001600088909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555003815260200160011515815250600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506020820151816001015560408201518160020160006101000a81548160ff0219169083151502179055509050507f7fd215c956537f33ef9064c457003d82df8562a7b03e1f896c0b39c7abc8355883604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1505050565b600060066000836000191660001916815260200190815260200160002060020160149054906101000a900460ff169050919050565b600b8054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156122bb5780601f10612290576101008083540402835291602001916122bb565b820191906000526020600020905b81548152906001019060200180831161229e57829003601f168201915b505050505081565b60008060008060008060008060006122da8b61189f565b9550955095509550600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141561232757600160008098509850985061241d565b821561233c578260008098509850985061241d565b8991508173ffffffffffffffffffffffffffffffffffffffff16636bcdaa33876000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b15156123be57600080fd5b6102c65a03f115156123cf57600080fd5b5050506040518051905090508285600019168260001916148573ffffffffffffffffffffffffffffffffffffffff168c73ffffffffffffffffffffffffffffffffffffffff16149850985098505b5050505050509250925092565b600060036002018281548110151561243e57fe5b9060005260206000209001549050919050565b60008061245c61410e565b61246461410e565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600a600b818054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156125425780601f1061251757610100808354040283529160200191612542565b820191906000526020600020905b81548152906001019060200180831161252557829003601f168201915b50505050509150808054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156125de5780601f106125b3576101008083540402835291602001916125de565b820191906000526020600020905b8154815290600101906020018083116125c157829003601f168201915b50505050509050935093509350935090919293565b6000806125fe614084565b3360008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614806126a85750600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160009054906101000a900460ff165b90507f7fca019a0a52664785803f352d793a992f66c4affa261b3daf127976e7ad67998282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a180151561272557600080fd5b8761272f81612982565b151561273a57600080fd5b612743896135fa565b955060016003600201805480600101828161275e9190614122565b916000526020600020900160008990919091509060001916905503945060a0604051908101604052803073ffffffffffffffffffffffffffffffffffffffff1681526020018b81526020018a81526020018981526020018881525093508360036000016000886000191660001916815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550602082015181600101908051906020019061283d92919061414e565b50604082015181600201908051906020019061285a92919061414e565b50606082015181600301908051906020019061287792919061414e565b50608082015181600401908051906020019061289492919061414e565b509050508460036001016000886000191660001916815260200190815260200160002081905550836000015173ffffffffffffffffffffffffffffffffffffffff167fde74f67f0ccaf379531f5b3884d0afb87e86192a992d99e7222390f8870a0b5385604001516040518080602001828103825283818151815260200191508051906020019080838360005b8381101561293c578082015181840152602081019050612921565b50505050905090810190601f1680156129695780820380516001836020036101000a031916815260200191505b509250505060405180910390a250505050505050505050565b60008061298e836135fa565b9050600060036002018054905014806129ea575080600019166003600201600360010160008460001916600019168152602001908152602001600020548154811015156129d757fe5b9060005260206000209001546000191614155b915050919050565b60006129fc61410e565b612a0461410e565b612a0c61410e565b612a1461410e565b612a1c614084565b866000600360020180549050118015612a7757508060001916600360020160036001016000846000191660001916815260200190815260200160002054815481101515612a6557fe5b90600052602060002090015460001916145b1515612a8257600080fd5b60036000016000896000191660001916815260200190815260200160002060a060405190810160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015612b9b5780601f10612b7057610100808354040283529160200191612b9b565b820191906000526020600020905b815481529060010190602001808311612b7e57829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015612c3d5780601f10612c1257610100808354040283529160200191612c3d565b820191906000526020600020905b815481529060010190602001808311612c2057829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015612cdf5780601f10612cb457610100808354040283529160200191612cdf565b820191906000526020600020905b815481529060010190602001808311612cc257829003601f168201915b50505050508152602001600482018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015612d815780601f10612d5657610100808354040283529160200191612d81565b820191906000526020600020905b815481529060010190602001808311612d6457829003601f168201915b50505050508152505091508160000151826020015183604001518460600151856080015183935082925081915080905096509650965096509650505091939590929450565b6000600280549050905090565b3360008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480612e7d5750600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160009054906101000a900460ff165b90507f7fca019a0a52664785803f352d793a992f66c4affa261b3daf127976e7ad67998282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a1801515612efa57600080fd5b600060066000856000191660001916815260200190815260200160002060020160146101000a81548160ff0219169083151502179055507fd1e55fd73bb60d490f023f5239b9c0ca41f4503cca514ab5c7c8649a188afdd38360405180826000191660001916815260200191505060405180910390a1505050565b60075481565b6000806000803360008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16148061302b5750600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160009054906101000a900460ff165b90507f7fca019a0a52664785803f352d793a992f66c4affa261b3daf127976e7ad67998282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a18015156130a857600080fd5b6130b1876135fa565b945060036001016000866000191660001916815260200190815260200160002054935060036002016001600360020180549050038154811015156130f157fe5b906000526020600020900154925083600360010160008560001916600019168152602001908152602001600020819055508260036002018581548110151561313557fe5b90600052602060002090018160001916905550600360020180548091906001900361316091906141ce565b50600360000160008660001916600019168152602001908152602001600020600080820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556001820160006131b791906141fa565b6002820160006131c791906141fa565b6003820160006131d791906141fa565b6004820160006131e791906141fa565b5050600360010160008660001916600019168152602001908152602001600020600090557f25011d6c52f8dd436cbad877a1e1bfa99b3fc7b3df1c4f7b68d6f6403e943a51876003600201805490506040518080602001838152602001828103825284818151815260200191508051906020019080838360005b8381101561327c578082015181840152602081019050613261565b50505050905090810190601f1680156132a95780820380516001836020036101000a031916815260200191505b50935050505060405180910390a1600195505050505050919050565b3360008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16148061336f5750600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160009054906101000a900460ff165b90507f7fca019a0a52664785803f352d793a992f66c4affa261b3daf127976e7ad67998282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a18015156133ec57600080fd5b600160066000856000191660001916815260200190815260200160002060020160146101000a81548160ff0219169083151502179055507f3cc2375f3fc7711ba27361cde93880f578742f9f050acee766bed662d117ba728360405180826000191660001916815260200191505060405180910390a1505050565b3360008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161490507f7fca019a0a52664785803f352d793a992f66c4affa261b3daf127976e7ad67998282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a180151561353757600080fd5b6000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160006101000a81548160ff0219169083151502179055507f56a53756e1db2ff35a90edee9bd205b4b2bb8633ee3d6a53a5e85d5b46f0e9dc83604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1505050565b6000816040518082805190602001908083835b602083101515613632578051825260208201915060208101905060208303925061360d565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209050919050565b600061367061410e565b600080600061367f87876122c3565b92509250925082156136f6576000606060405190810160405280602681526020017f496e76616c69642063726564656e7469616c3a2063726564656e7469616c207281526020017f65766f6b6564000000000000000000000000000000000000000000000000000081525080905094509450613864565b80151561378d5780608060405190810160405280604581526020017f496e76616c696420726563697069656e743a20726563697069656e7420646f6581526020017f73206e6f74206d61746368206f726967696e616c207472616e73616374696f6e81526020017f206461746100000000000000000000000000000000000000000000000000000081525080905094509450613864565b8115156138245781608060405190810160405280605381526020017f496e76616c6964206461746120696e746567726974793a206461746120696e2081526020017f63726564656e7469616c20646f6573206e6f74206d61746368206f726967696e81526020017f616c207472616e73616374696f6e20646174610000000000000000000000000081525080905094509450613864565b60016040805190810160405280601381526020017f43726564656e7469616c2069732076616c696400000000000000000000000000815250809050945094505b5050509250929050565b60008282600754604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140183805190602001908083835b6020831015156138eb57805182526020820191506020810190506020830392506138c6565b6001836020036101000a03801982511681845116808217855250505050505090500182815260200193505050506040518091039020905092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60016020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154908060020160009054906101000a900460ff16905083565b6139ac614084565b6000600360000160006139be886135fa565b6000191660001916815260200190815260200160002060a060405190810160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015613acf5780601f10613aa457610100808354040283529160200191613acf565b820191906000526020600020905b815481529060010190602001808311613ab257829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015613b715780601f10613b4657610100808354040283529160200191613b71565b820191906000526020600020905b815481529060010190602001808311613b5457829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015613c135780601f10613be857610100808354040283529160200191613c13565b820191906000526020600020905b815481529060010190602001808311613bf657829003601f168201915b50505050508152602001600482018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015613cb55780601f10613c8a57610100808354040283529160200191613cb5565b820191906000526020600020905b815481529060010190602001808311613c9857829003601f168201915b5050505050815250509150600073ffffffffffffffffffffffffffffffffffffffff16826000015173ffffffffffffffffffffffffffffffffffffffff1614151515613d0057600080fd5b8390508073ffffffffffffffffffffffffffffffffffffffff16634e3943e7836000015184602001518560400151866060015187608001518b8b8b6040518963ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001806020018060200180602001806020018881526020018773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001866000191660001916815260200185810385528c818151815260200191508051906020019080838360005b83811015613e2a578082015181840152602081019050613e0f565b50505050905090810190601f168015613e575780820380516001836020036101000a031916815260200191505b5085810384528b818151815260200191508051906020019080838360005b83811015613e90578082015181840152602081019050613e75565b50505050905090810190601f168015613ebd5780820380516001836020036101000a031916815260200191505b5085810383528a818151815260200191508051906020019080838360005b83811015613ef6578082015181840152602081019050613edb565b50505050905090810190601f168015613f235780820380516001836020036101000a031916815260200191505b50858103825289818151815260200191508051906020019080838360005b83811015613f5c578082015181840152602081019050613f41565b50505050905090810190601f168015613f895780820380516001836020036101000a031916815260200191505b509c50505050505050505050505050600060405180830381600087803b1515613fb157600080fd5b6102c65a03f11515613fc257600080fd5b5050508373ffffffffffffffffffffffffffffffffffffffff167fba451c931e2011b181517e87b4faa9ded9887fd9fdc41479f2e4ed86c0ce300183604001516040518080602001828103825283818151815260200191508051906020019080838360005b83811015614042578082015181840152602081019050614027565b50505050905090810190601f16801561406f5780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505050505050565b60a060405190810160405280600073ffffffffffffffffffffffffffffffffffffffff1681526020016140b5614242565b81526020016140c2614242565b81526020016140cf614242565b81526020016140dc614242565b81525090565b815481835581811511614109578183600052602060002091820191016141089190614256565b5b505050565b602060405190810160405280600081525090565b81548183558181151161414957818360005260206000209182019101614148919061427b565b5b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061418f57805160ff19168380011785556141bd565b828001600101855582156141bd579182015b828111156141bc5782518255916020019190600101906141a1565b5b5090506141ca9190614256565b5090565b8154818355818115116141f5578183600052602060002091820191016141f4919061427b565b5b505050565b50805460018160011615610100020316600290046000825580601f10614220575061423f565b601f01602090049060005260206000209081019061423e9190614256565b5b50565b602060405190810160405280600081525090565b61427891905b8082111561427457600081600090555060010161425c565b5090565b90565b61429d91905b80821115614299576000816000905550600101614281565b5090565b905600a165627a7a7230582086a31c2b38ab95e1903279d4a8ff08625a88f5b7c26d2494b494610d71dd967c0029", + "bytecode": "0x606060405234156200001057600080fd5b604051620044e5380380620044e58339810160405280805190602001909190805182019190602001805182019190602001805190602001909190505083808080806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050506000600781905550505082600a9080519060200190620000b49291906200015a565b5081600b9080519060200190620000cd9291906200015a565b5030600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050505062000209565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200019d57805160ff1916838001178555620001ce565b82800160010185558215620001ce579182015b82811115620001cd578251825591602001919060010190620001b0565b5b509050620001dd9190620001e1565b5090565b6200020691905b8082111562000202576000816000905550600101620001e8565b5090565b90565b6142cc80620002196000396000f300606060405260043610610180576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063029a28581461018557806306fdde031461020e5780630c43ae9c1461029c5780630decfdea146102f15780631041eb9614610381578063164f0a4e146104115780631ddb6af6146104a957806324ddd51a146106295780633557b6c314610652578063368a1709146106b55780633b57391a1461073a5780634294857f146107735780635600f04f146107b25780635629aec91461084057806359c293f1146108b45780635a9b0b89146108f35780635c9d3a9414610a5357806372ee19a214610b7957806377002fcf14610bee5780637c59fda014610e05578063a5aef15b14610e2e578063affed0e014610e55578063b610922114610e7e578063b75c7dc614610ef3578063be47aa0914610f1a578063c1eabde914610f53578063d8c0941b14610fcc578063eb92948114611096578063f851a4401461112e578063f9afc24214611183575b600080fd5b341561019057600080fd5b61020c60048080356000191690602001909190803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190505061120e565b005b341561021957600080fd5b61022161177e565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610261578082015181840152602081019050610246565b50505050905090810190601f16801561028e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156102a757600080fd5b6102af61181c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156102fc57600080fd5b610316600480803560001916906020019091905050611842565b60405180856000191660001916815260200184600019166000191681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018215151515815260200194505050505060405180910390f35b341561038c57600080fd5b6103a660048080356000191690602001909190505061189f565b60405180856000191660001916815260200184600019166000191681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018215151515815260200194505050505060405180910390f35b341561041c57600080fd5b61048b600480803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061195d565b60405180826000191660001916815260200191505060405180910390f35b34156104b457600080fd5b61060b600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611a0d565b60405180826000191660001916815260200191505060405180910390f35b341561063457600080fd5b61063c611c03565b6040518082815260200191505060405180910390f35b341561065d57600080fd5b6106736004808035906020019091905050611c13565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156106c057600080fd5b610738600480803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611cf0565b005b341561074557600080fd5b610771600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611f6c565b005b341561077e57600080fd5b6107986004808035600019169060200190919050506121f0565b604051808215151515815260200191505060405180910390f35b34156107bd57600080fd5b6107c5612225565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156108055780820151818401526020810190506107ea565b50505050905090810190601f1680156108325780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561084b57600080fd5b61088460048080356000191690602001909190803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506122c3565b60405180841515151581526020018315151515815260200182151515158152602001935050505060405180910390f35b34156108bf57600080fd5b6108d5600480803590602001909190505061242a565b60405180826000191660001916815260200191505060405180910390f35b34156108fe57600080fd5b610906612451565b604051808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018060200180602001838103835285818151815260200191508051906020019080838360005b838110156109ae578082015181840152602081019050610993565b50505050905090810190601f1680156109db5780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b83811015610a145780820151818401526020810190506109f9565b50505050905090810190601f168015610a415780820380516001836020036101000a031916815260200191505b50965050505050505060405180910390f35b3415610a5e57600080fd5b610b77600480803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919050506125f3565b005b3415610b8457600080fd5b610bd4600480803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050612982565b604051808215151515815260200191505060405180910390f35b3415610bf957600080fd5b610c136004808035600019169060200190919050506129f2565b604051808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001806020018060200180602001858103855289818151815260200191508051906020019080838360005b83811015610c91578082015181840152602081019050610c76565b50505050905090810190601f168015610cbe5780820380516001836020036101000a031916815260200191505b50858103845288818151815260200191508051906020019080838360005b83811015610cf7578082015181840152602081019050610cdc565b50505050905090810190601f168015610d245780820380516001836020036101000a031916815260200191505b50858103835287818151815260200191508051906020019080838360005b83811015610d5d578082015181840152602081019050610d42565b50505050905090810190601f168015610d8a5780820380516001836020036101000a031916815260200191505b50858103825286818151815260200191508051906020019080838360005b83811015610dc3578082015181840152602081019050610da8565b50505050905090810190601f168015610df05780820380516001836020036101000a031916815260200191505b50995050505050505050505060405180910390f35b3415610e1057600080fd5b610e18612dc6565b6040518082815260200191505060405180910390f35b3415610e3957600080fd5b610e53600480803560001916906020019091905050612dd3565b005b3415610e6057600080fd5b610e68612f75565b6040518082815260200191505060405180910390f35b3415610e8957600080fd5b610ed9600480803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050612f7b565b604051808215151515815260200191505060405180910390f35b3415610efe57600080fd5b610f186004808035600019169060200190919050506132c5565b005b3415610f2557600080fd5b610f51600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050613467565b005b3415610f5e57600080fd5b610fae600480803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919050506135fa565b60405180826000191660001916815260200191505060405180910390f35b3415610fd757600080fd5b61101060048080356000191690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050613666565b604051808315151515815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561105a57808201518184015260208101905061103f565b50505050905090810190601f1680156110875780820380516001836020036101000a031916815260200191505b50935050505060405180910390f35b34156110a157600080fd5b611110600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190505061386e565b60405180826000191660001916815260200191505060405180910390f35b341561113957600080fd5b611141613928565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561118e57600080fd5b6111ba600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061394d565b604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200182151515158152602001935050505060405180910390f35b6000611218614084565b60003360008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614806112c45750600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160009054906101000a900460ff165b90507f7fca019a0a52664785803f352d793a992f66c4affa261b3daf127976e7ad67998282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a180151561134157600080fd5b60076000815480929190600101919050555061135c866135fa565b945060036000016000866000191660001916815260200190815260200160002060a060405190810160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156114775780601f1061144c57610100808354040283529160200191611477565b820191906000526020600020905b81548152906001019060200180831161145a57829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156115195780601f106114ee57610100808354040283529160200191611519565b820191906000526020600020905b8154815290600101906020018083116114fc57829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156115bb5780601f10611590576101008083540402835291602001916115bb565b820191906000526020600020905b81548152906001019060200180831161159e57829003601f168201915b50505050508152602001600482018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561165d5780601f106116325761010080835404028352916020019161165d565b820191906000526020600020905b81548152906001019060200180831161164057829003601f168201915b505050505081525050935061168a846000015185602001518660400151876060015188608001518c611a0d565b925060806040519081016040528089600019168152602001846000191681526020018873ffffffffffffffffffffffffffffffffffffffff16815260200160001515815250600660008a60001916600019168152602001908152602001600020600082015181600001906000191690556020820151816001019060001916905560408201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060608201518160020160146101000a81548160ff0219169083151502179055509050505050505050505050565b600a8054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156118145780601f106117e957610100808354040283529160200191611814565b820191906000526020600020905b8154815290600101906020018083116117f757829003601f168201915b505050505081565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60066020528060005260406000206000915090508060000154908060010154908060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060020160149054906101000a900460ff16905084565b600080600080600660008660001916600019168152602001908152602001600020600001546006600087600019166000191681526020019081526020016000206001015460066000886000191660001916815260200190815260200160002060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660066000896000191660001916815260200190815260200160002060020160149054906101000a900460ff1693509350935093509193509193565b600082826040518083805190602001908083835b6020831015156119965780518252602082019150602081019050602083039250611971565b6001836020036101000a0380198251168184511680821785525050505050509050018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c01000000000000000000000000028152601401925050506040518091039020905092915050565b6000868686868686604051808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140186805190602001908083835b602083101515611a8b5780518252602082019150602081019050602083039250611a66565b6001836020036101000a03801982511681845116808217855250505050505090500185805190602001908083835b602083101515611ade5780518252602082019150602081019050602083039250611ab9565b6001836020036101000a03801982511681845116808217855250505050505090500184805190602001908083835b602083101515611b315780518252602082019150602081019050602083039250611b0c565b6001836020036101000a03801982511681845116808217855250505050505090500183805190602001908083835b602083101515611b845780518252602082019150602081019050602083039250611b5f565b6001836020036101000a0380198251168184511680821785525050505050509050018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014019650505050505050604051809103902090509695505050505050565b6000600360020180549050905090565b600060016000600284815481101515611c2857fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160009054906101000a900460ff1615611ce657600282815481101515611cb357fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050611ceb565b600090505b919050565b6000803360008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480611d9d5750600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160009054906101000a900460ff165b90507f7fca019a0a52664785803f352d793a992f66c4affa261b3daf127976e7ad67998282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a1801515611e1a57600080fd5b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663be440ff56000604051602001526040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1515611ea857600080fd5b6102c65a03f11515611eb957600080fd5b505050604051805190501515611ece57600080fd5b600085111515611ee057849350611eeb565b62093a808502420193505b611f4a600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000368080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505061386e565b9250611f58878588866139a4565b611f6383878961120e565b50505050505050565b3360008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161490507f7fca019a0a52664785803f352d793a992f66c4affa261b3daf127976e7ad67998282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a180151561203c57600080fd5b6060604051908101604052808473ffffffffffffffffffffffffffffffffffffffff16815260200160016002805480600101828161207a91906140e2565b9160005260206000209001600088909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555003815260200160011515815250600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506020820151816001015560408201518160020160006101000a81548160ff0219169083151502179055509050507f7fd215c956537f33ef9064c457003d82df8562a7b03e1f896c0b39c7abc8355883604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1505050565b600060066000836000191660001916815260200190815260200160002060020160149054906101000a900460ff169050919050565b600b8054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156122bb5780601f10612290576101008083540402835291602001916122bb565b820191906000526020600020905b81548152906001019060200180831161229e57829003601f168201915b505050505081565b60008060008060008060008060006122da8b61189f565b9550955095509550600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141561232757600160008098509850985061241d565b821561233c578260008098509850985061241d565b8991508173ffffffffffffffffffffffffffffffffffffffff16636bcdaa33876000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b15156123be57600080fd5b6102c65a03f115156123cf57600080fd5b5050506040518051905090508285600019168260001916148573ffffffffffffffffffffffffffffffffffffffff168c73ffffffffffffffffffffffffffffffffffffffff16149850985098505b5050505050509250925092565b600060036002018281548110151561243e57fe5b9060005260206000209001549050919050565b60008061245c61410e565b61246461410e565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600a600b818054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156125425780601f1061251757610100808354040283529160200191612542565b820191906000526020600020905b81548152906001019060200180831161252557829003601f168201915b50505050509150808054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156125de5780601f106125b3576101008083540402835291602001916125de565b820191906000526020600020905b8154815290600101906020018083116125c157829003601f168201915b50505050509050935093509350935090919293565b6000806125fe614084565b3360008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614806126a85750600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160009054906101000a900460ff165b90507f7fca019a0a52664785803f352d793a992f66c4affa261b3daf127976e7ad67998282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a180151561272557600080fd5b8761272f81612982565b151561273a57600080fd5b612743896135fa565b955060016003600201805480600101828161275e9190614122565b916000526020600020900160008990919091509060001916905503945060a0604051908101604052803073ffffffffffffffffffffffffffffffffffffffff1681526020018b81526020018a81526020018981526020018881525093508360036000016000886000191660001916815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550602082015181600101908051906020019061283d92919061414e565b50604082015181600201908051906020019061285a92919061414e565b50606082015181600301908051906020019061287792919061414e565b50608082015181600401908051906020019061289492919061414e565b509050508460036001016000886000191660001916815260200190815260200160002081905550836000015173ffffffffffffffffffffffffffffffffffffffff167fde74f67f0ccaf379531f5b3884d0afb87e86192a992d99e7222390f8870a0b5385604001516040518080602001828103825283818151815260200191508051906020019080838360005b8381101561293c578082015181840152602081019050612921565b50505050905090810190601f1680156129695780820380516001836020036101000a031916815260200191505b509250505060405180910390a250505050505050505050565b60008061298e836135fa565b9050600060036002018054905014806129ea575080600019166003600201600360010160008460001916600019168152602001908152602001600020548154811015156129d757fe5b9060005260206000209001546000191614155b915050919050565b60006129fc61410e565b612a0461410e565b612a0c61410e565b612a1461410e565b612a1c614084565b866000600360020180549050118015612a7757508060001916600360020160036001016000846000191660001916815260200190815260200160002054815481101515612a6557fe5b90600052602060002090015460001916145b1515612a8257600080fd5b60036000016000896000191660001916815260200190815260200160002060a060405190810160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015612b9b5780601f10612b7057610100808354040283529160200191612b9b565b820191906000526020600020905b815481529060010190602001808311612b7e57829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015612c3d5780601f10612c1257610100808354040283529160200191612c3d565b820191906000526020600020905b815481529060010190602001808311612c2057829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015612cdf5780601f10612cb457610100808354040283529160200191612cdf565b820191906000526020600020905b815481529060010190602001808311612cc257829003601f168201915b50505050508152602001600482018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015612d815780601f10612d5657610100808354040283529160200191612d81565b820191906000526020600020905b815481529060010190602001808311612d6457829003601f168201915b50505050508152505091508160000151826020015183604001518460600151856080015183935082925081915080905096509650965096509650505091939590929450565b6000600280549050905090565b3360008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480612e7d5750600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160009054906101000a900460ff165b90507f7fca019a0a52664785803f352d793a992f66c4affa261b3daf127976e7ad67998282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a1801515612efa57600080fd5b600060066000856000191660001916815260200190815260200160002060020160146101000a81548160ff0219169083151502179055507fd1e55fd73bb60d490f023f5239b9c0ca41f4503cca514ab5c7c8649a188afdd38360405180826000191660001916815260200191505060405180910390a1505050565b60075481565b6000806000803360008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16148061302b5750600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160009054906101000a900460ff165b90507f7fca019a0a52664785803f352d793a992f66c4affa261b3daf127976e7ad67998282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a18015156130a857600080fd5b6130b1876135fa565b945060036001016000866000191660001916815260200190815260200160002054935060036002016001600360020180549050038154811015156130f157fe5b906000526020600020900154925083600360010160008560001916600019168152602001908152602001600020819055508260036002018581548110151561313557fe5b90600052602060002090018160001916905550600360020180548091906001900361316091906141ce565b50600360000160008660001916600019168152602001908152602001600020600080820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556001820160006131b791906141fa565b6002820160006131c791906141fa565b6003820160006131d791906141fa565b6004820160006131e791906141fa565b5050600360010160008660001916600019168152602001908152602001600020600090557f25011d6c52f8dd436cbad877a1e1bfa99b3fc7b3df1c4f7b68d6f6403e943a51876003600201805490506040518080602001838152602001828103825284818151815260200191508051906020019080838360005b8381101561327c578082015181840152602081019050613261565b50505050905090810190601f1680156132a95780820380516001836020036101000a031916815260200191505b50935050505060405180910390a1600195505050505050919050565b3360008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16148061336f5750600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160009054906101000a900460ff165b90507f7fca019a0a52664785803f352d793a992f66c4affa261b3daf127976e7ad67998282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a18015156133ec57600080fd5b600160066000856000191660001916815260200190815260200160002060020160146101000a81548160ff0219169083151502179055507f3cc2375f3fc7711ba27361cde93880f578742f9f050acee766bed662d117ba728360405180826000191660001916815260200191505060405180910390a1505050565b3360008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161490507f7fca019a0a52664785803f352d793a992f66c4affa261b3daf127976e7ad67998282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a180151561353757600080fd5b6000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160006101000a81548160ff0219169083151502179055507f56a53756e1db2ff35a90edee9bd205b4b2bb8633ee3d6a53a5e85d5b46f0e9dc83604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1505050565b6000816040518082805190602001908083835b602083101515613632578051825260208201915060208101905060208303925061360d565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209050919050565b600061367061410e565b600080600061367f87876122c3565b92509250925082156136f6576000606060405190810160405280602681526020017f496e76616c69642063726564656e7469616c3a2063726564656e7469616c207281526020017f65766f6b6564000000000000000000000000000000000000000000000000000081525080905094509450613864565b80151561378d5780608060405190810160405280604581526020017f496e76616c696420726563697069656e743a20726563697069656e7420646f6581526020017f73206e6f74206d61746368206f726967696e616c207472616e73616374696f6e81526020017f206461746100000000000000000000000000000000000000000000000000000081525080905094509450613864565b8115156138245781608060405190810160405280605381526020017f496e76616c6964206461746120696e746567726974793a206461746120696e2081526020017f63726564656e7469616c20646f6573206e6f74206d61746368206f726967696e81526020017f616c207472616e73616374696f6e20646174610000000000000000000000000081525080905094509450613864565b60016040805190810160405280601381526020017f43726564656e7469616c2069732076616c696400000000000000000000000000815250809050945094505b5050509250929050565b60008282600754604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140183805190602001908083835b6020831015156138eb57805182526020820191506020810190506020830392506138c6565b6001836020036101000a03801982511681845116808217855250505050505090500182815260200193505050506040518091039020905092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60016020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154908060020160009054906101000a900460ff16905083565b6139ac614084565b6000600360000160006139be886135fa565b6000191660001916815260200190815260200160002060a060405190810160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015613acf5780601f10613aa457610100808354040283529160200191613acf565b820191906000526020600020905b815481529060010190602001808311613ab257829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015613b715780601f10613b4657610100808354040283529160200191613b71565b820191906000526020600020905b815481529060010190602001808311613b5457829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015613c135780601f10613be857610100808354040283529160200191613c13565b820191906000526020600020905b815481529060010190602001808311613bf657829003601f168201915b50505050508152602001600482018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015613cb55780601f10613c8a57610100808354040283529160200191613cb5565b820191906000526020600020905b815481529060010190602001808311613c9857829003601f168201915b5050505050815250509150600073ffffffffffffffffffffffffffffffffffffffff16826000015173ffffffffffffffffffffffffffffffffffffffff1614151515613d0057600080fd5b8390508073ffffffffffffffffffffffffffffffffffffffff16634e3943e7836000015184602001518560400151866060015187608001518b8b8b6040518963ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001806020018060200180602001806020018881526020018773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001866000191660001916815260200185810385528c818151815260200191508051906020019080838360005b83811015613e2a578082015181840152602081019050613e0f565b50505050905090810190601f168015613e575780820380516001836020036101000a031916815260200191505b5085810384528b818151815260200191508051906020019080838360005b83811015613e90578082015181840152602081019050613e75565b50505050905090810190601f168015613ebd5780820380516001836020036101000a031916815260200191505b5085810383528a818151815260200191508051906020019080838360005b83811015613ef6578082015181840152602081019050613edb565b50505050905090810190601f168015613f235780820380516001836020036101000a031916815260200191505b50858103825289818151815260200191508051906020019080838360005b83811015613f5c578082015181840152602081019050613f41565b50505050905090810190601f168015613f895780820380516001836020036101000a031916815260200191505b509c50505050505050505050505050600060405180830381600087803b1515613fb157600080fd5b6102c65a03f11515613fc257600080fd5b5050508373ffffffffffffffffffffffffffffffffffffffff167fba451c931e2011b181517e87b4faa9ded9887fd9fdc41479f2e4ed86c0ce300183604001516040518080602001828103825283818151815260200191508051906020019080838360005b83811015614042578082015181840152602081019050614027565b50505050905090810190601f16801561406f5780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505050505050565b60a060405190810160405280600073ffffffffffffffffffffffffffffffffffffffff1681526020016140b5614242565b81526020016140c2614242565b81526020016140cf614242565b81526020016140dc614242565b81525090565b815481835581811511614109578183600052602060002091820191016141089190614256565b5b505050565b602060405190810160405280600081525090565b81548183558181151161414957818360005260206000209182019101614148919061427b565b5b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061418f57805160ff19168380011785556141bd565b828001600101855582156141bd579182015b828111156141bc5782518255916020019190600101906141a1565b5b5090506141ca9190614256565b5090565b8154818355818115116141f5578183600052602060002091820191016141f4919061427b565b5b505050565b50805460018160011615610100020316600290046000825580601f10614220575061423f565b601f01602090049060005260206000209081019061423e9190614256565b5b50565b602060405190810160405280600081525090565b61427891905b8082111561427457600081600090555060010161425c565b5090565b90565b61429d91905b80821115614299576000816000905550600101614281565b5090565b905600a165627a7a723058207fc9ed5ff35de5ce28f24fcf81ac19dec29a3084f5881fc8b0596f93e67bc4240029", + "deployedBytecode": "0x606060405260043610610180576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063029a28581461018557806306fdde031461020e5780630c43ae9c1461029c5780630decfdea146102f15780631041eb9614610381578063164f0a4e146104115780631ddb6af6146104a957806324ddd51a146106295780633557b6c314610652578063368a1709146106b55780633b57391a1461073a5780634294857f146107735780635600f04f146107b25780635629aec91461084057806359c293f1146108b45780635a9b0b89146108f35780635c9d3a9414610a5357806372ee19a214610b7957806377002fcf14610bee5780637c59fda014610e05578063a5aef15b14610e2e578063affed0e014610e55578063b610922114610e7e578063b75c7dc614610ef3578063be47aa0914610f1a578063c1eabde914610f53578063d8c0941b14610fcc578063eb92948114611096578063f851a4401461112e578063f9afc24214611183575b600080fd5b341561019057600080fd5b61020c60048080356000191690602001909190803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190505061120e565b005b341561021957600080fd5b61022161177e565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610261578082015181840152602081019050610246565b50505050905090810190601f16801561028e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156102a757600080fd5b6102af61181c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156102fc57600080fd5b610316600480803560001916906020019091905050611842565b60405180856000191660001916815260200184600019166000191681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018215151515815260200194505050505060405180910390f35b341561038c57600080fd5b6103a660048080356000191690602001909190505061189f565b60405180856000191660001916815260200184600019166000191681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018215151515815260200194505050505060405180910390f35b341561041c57600080fd5b61048b600480803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061195d565b60405180826000191660001916815260200191505060405180910390f35b34156104b457600080fd5b61060b600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611a0d565b60405180826000191660001916815260200191505060405180910390f35b341561063457600080fd5b61063c611c03565b6040518082815260200191505060405180910390f35b341561065d57600080fd5b6106736004808035906020019091905050611c13565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156106c057600080fd5b610738600480803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611cf0565b005b341561074557600080fd5b610771600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611f6c565b005b341561077e57600080fd5b6107986004808035600019169060200190919050506121f0565b604051808215151515815260200191505060405180910390f35b34156107bd57600080fd5b6107c5612225565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156108055780820151818401526020810190506107ea565b50505050905090810190601f1680156108325780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561084b57600080fd5b61088460048080356000191690602001909190803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506122c3565b60405180841515151581526020018315151515815260200182151515158152602001935050505060405180910390f35b34156108bf57600080fd5b6108d5600480803590602001909190505061242a565b60405180826000191660001916815260200191505060405180910390f35b34156108fe57600080fd5b610906612451565b604051808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018060200180602001838103835285818151815260200191508051906020019080838360005b838110156109ae578082015181840152602081019050610993565b50505050905090810190601f1680156109db5780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b83811015610a145780820151818401526020810190506109f9565b50505050905090810190601f168015610a415780820380516001836020036101000a031916815260200191505b50965050505050505060405180910390f35b3415610a5e57600080fd5b610b77600480803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919050506125f3565b005b3415610b8457600080fd5b610bd4600480803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050612982565b604051808215151515815260200191505060405180910390f35b3415610bf957600080fd5b610c136004808035600019169060200190919050506129f2565b604051808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001806020018060200180602001858103855289818151815260200191508051906020019080838360005b83811015610c91578082015181840152602081019050610c76565b50505050905090810190601f168015610cbe5780820380516001836020036101000a031916815260200191505b50858103845288818151815260200191508051906020019080838360005b83811015610cf7578082015181840152602081019050610cdc565b50505050905090810190601f168015610d245780820380516001836020036101000a031916815260200191505b50858103835287818151815260200191508051906020019080838360005b83811015610d5d578082015181840152602081019050610d42565b50505050905090810190601f168015610d8a5780820380516001836020036101000a031916815260200191505b50858103825286818151815260200191508051906020019080838360005b83811015610dc3578082015181840152602081019050610da8565b50505050905090810190601f168015610df05780820380516001836020036101000a031916815260200191505b50995050505050505050505060405180910390f35b3415610e1057600080fd5b610e18612dc6565b6040518082815260200191505060405180910390f35b3415610e3957600080fd5b610e53600480803560001916906020019091905050612dd3565b005b3415610e6057600080fd5b610e68612f75565b6040518082815260200191505060405180910390f35b3415610e8957600080fd5b610ed9600480803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050612f7b565b604051808215151515815260200191505060405180910390f35b3415610efe57600080fd5b610f186004808035600019169060200190919050506132c5565b005b3415610f2557600080fd5b610f51600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050613467565b005b3415610f5e57600080fd5b610fae600480803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919050506135fa565b60405180826000191660001916815260200191505060405180910390f35b3415610fd757600080fd5b61101060048080356000191690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050613666565b604051808315151515815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561105a57808201518184015260208101905061103f565b50505050905090810190601f1680156110875780820380516001836020036101000a031916815260200191505b50935050505060405180910390f35b34156110a157600080fd5b611110600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190505061386e565b60405180826000191660001916815260200191505060405180910390f35b341561113957600080fd5b611141613928565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561118e57600080fd5b6111ba600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061394d565b604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200182151515158152602001935050505060405180910390f35b6000611218614084565b60003360008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614806112c45750600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160009054906101000a900460ff165b90507f7fca019a0a52664785803f352d793a992f66c4affa261b3daf127976e7ad67998282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a180151561134157600080fd5b60076000815480929190600101919050555061135c866135fa565b945060036000016000866000191660001916815260200190815260200160002060a060405190810160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156114775780601f1061144c57610100808354040283529160200191611477565b820191906000526020600020905b81548152906001019060200180831161145a57829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156115195780601f106114ee57610100808354040283529160200191611519565b820191906000526020600020905b8154815290600101906020018083116114fc57829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156115bb5780601f10611590576101008083540402835291602001916115bb565b820191906000526020600020905b81548152906001019060200180831161159e57829003601f168201915b50505050508152602001600482018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561165d5780601f106116325761010080835404028352916020019161165d565b820191906000526020600020905b81548152906001019060200180831161164057829003601f168201915b505050505081525050935061168a846000015185602001518660400151876060015188608001518c611a0d565b925060806040519081016040528089600019168152602001846000191681526020018873ffffffffffffffffffffffffffffffffffffffff16815260200160001515815250600660008a60001916600019168152602001908152602001600020600082015181600001906000191690556020820151816001019060001916905560408201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060608201518160020160146101000a81548160ff0219169083151502179055509050505050505050505050565b600a8054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156118145780601f106117e957610100808354040283529160200191611814565b820191906000526020600020905b8154815290600101906020018083116117f757829003601f168201915b505050505081565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60066020528060005260406000206000915090508060000154908060010154908060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060020160149054906101000a900460ff16905084565b600080600080600660008660001916600019168152602001908152602001600020600001546006600087600019166000191681526020019081526020016000206001015460066000886000191660001916815260200190815260200160002060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660066000896000191660001916815260200190815260200160002060020160149054906101000a900460ff1693509350935093509193509193565b600082826040518083805190602001908083835b6020831015156119965780518252602082019150602081019050602083039250611971565b6001836020036101000a0380198251168184511680821785525050505050509050018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c01000000000000000000000000028152601401925050506040518091039020905092915050565b6000868686868686604051808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140186805190602001908083835b602083101515611a8b5780518252602082019150602081019050602083039250611a66565b6001836020036101000a03801982511681845116808217855250505050505090500185805190602001908083835b602083101515611ade5780518252602082019150602081019050602083039250611ab9565b6001836020036101000a03801982511681845116808217855250505050505090500184805190602001908083835b602083101515611b315780518252602082019150602081019050602083039250611b0c565b6001836020036101000a03801982511681845116808217855250505050505090500183805190602001908083835b602083101515611b845780518252602082019150602081019050602083039250611b5f565b6001836020036101000a0380198251168184511680821785525050505050509050018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014019650505050505050604051809103902090509695505050505050565b6000600360020180549050905090565b600060016000600284815481101515611c2857fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160009054906101000a900460ff1615611ce657600282815481101515611cb357fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050611ceb565b600090505b919050565b6000803360008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480611d9d5750600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160009054906101000a900460ff165b90507f7fca019a0a52664785803f352d793a992f66c4affa261b3daf127976e7ad67998282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a1801515611e1a57600080fd5b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663be440ff56000604051602001526040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1515611ea857600080fd5b6102c65a03f11515611eb957600080fd5b505050604051805190501515611ece57600080fd5b600085111515611ee057849350611eeb565b62093a808502420193505b611f4a600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000368080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505061386e565b9250611f58878588866139a4565b611f6383878961120e565b50505050505050565b3360008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161490507f7fca019a0a52664785803f352d793a992f66c4affa261b3daf127976e7ad67998282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a180151561203c57600080fd5b6060604051908101604052808473ffffffffffffffffffffffffffffffffffffffff16815260200160016002805480600101828161207a91906140e2565b9160005260206000209001600088909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555003815260200160011515815250600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506020820151816001015560408201518160020160006101000a81548160ff0219169083151502179055509050507f7fd215c956537f33ef9064c457003d82df8562a7b03e1f896c0b39c7abc8355883604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1505050565b600060066000836000191660001916815260200190815260200160002060020160149054906101000a900460ff169050919050565b600b8054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156122bb5780601f10612290576101008083540402835291602001916122bb565b820191906000526020600020905b81548152906001019060200180831161229e57829003601f168201915b505050505081565b60008060008060008060008060006122da8b61189f565b9550955095509550600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141561232757600160008098509850985061241d565b821561233c578260008098509850985061241d565b8991508173ffffffffffffffffffffffffffffffffffffffff16636bcdaa33876000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b15156123be57600080fd5b6102c65a03f115156123cf57600080fd5b5050506040518051905090508285600019168260001916148573ffffffffffffffffffffffffffffffffffffffff168c73ffffffffffffffffffffffffffffffffffffffff16149850985098505b5050505050509250925092565b600060036002018281548110151561243e57fe5b9060005260206000209001549050919050565b60008061245c61410e565b61246461410e565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600a600b818054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156125425780601f1061251757610100808354040283529160200191612542565b820191906000526020600020905b81548152906001019060200180831161252557829003601f168201915b50505050509150808054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156125de5780601f106125b3576101008083540402835291602001916125de565b820191906000526020600020905b8154815290600101906020018083116125c157829003601f168201915b50505050509050935093509350935090919293565b6000806125fe614084565b3360008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614806126a85750600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160009054906101000a900460ff165b90507f7fca019a0a52664785803f352d793a992f66c4affa261b3daf127976e7ad67998282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a180151561272557600080fd5b8761272f81612982565b151561273a57600080fd5b612743896135fa565b955060016003600201805480600101828161275e9190614122565b916000526020600020900160008990919091509060001916905503945060a0604051908101604052803073ffffffffffffffffffffffffffffffffffffffff1681526020018b81526020018a81526020018981526020018881525093508360036000016000886000191660001916815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550602082015181600101908051906020019061283d92919061414e565b50604082015181600201908051906020019061285a92919061414e565b50606082015181600301908051906020019061287792919061414e565b50608082015181600401908051906020019061289492919061414e565b509050508460036001016000886000191660001916815260200190815260200160002081905550836000015173ffffffffffffffffffffffffffffffffffffffff167fde74f67f0ccaf379531f5b3884d0afb87e86192a992d99e7222390f8870a0b5385604001516040518080602001828103825283818151815260200191508051906020019080838360005b8381101561293c578082015181840152602081019050612921565b50505050905090810190601f1680156129695780820380516001836020036101000a031916815260200191505b509250505060405180910390a250505050505050505050565b60008061298e836135fa565b9050600060036002018054905014806129ea575080600019166003600201600360010160008460001916600019168152602001908152602001600020548154811015156129d757fe5b9060005260206000209001546000191614155b915050919050565b60006129fc61410e565b612a0461410e565b612a0c61410e565b612a1461410e565b612a1c614084565b866000600360020180549050118015612a7757508060001916600360020160036001016000846000191660001916815260200190815260200160002054815481101515612a6557fe5b90600052602060002090015460001916145b1515612a8257600080fd5b60036000016000896000191660001916815260200190815260200160002060a060405190810160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015612b9b5780601f10612b7057610100808354040283529160200191612b9b565b820191906000526020600020905b815481529060010190602001808311612b7e57829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015612c3d5780601f10612c1257610100808354040283529160200191612c3d565b820191906000526020600020905b815481529060010190602001808311612c2057829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015612cdf5780601f10612cb457610100808354040283529160200191612cdf565b820191906000526020600020905b815481529060010190602001808311612cc257829003601f168201915b50505050508152602001600482018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015612d815780601f10612d5657610100808354040283529160200191612d81565b820191906000526020600020905b815481529060010190602001808311612d6457829003601f168201915b50505050508152505091508160000151826020015183604001518460600151856080015183935082925081915080905096509650965096509650505091939590929450565b6000600280549050905090565b3360008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480612e7d5750600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160009054906101000a900460ff165b90507f7fca019a0a52664785803f352d793a992f66c4affa261b3daf127976e7ad67998282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a1801515612efa57600080fd5b600060066000856000191660001916815260200190815260200160002060020160146101000a81548160ff0219169083151502179055507fd1e55fd73bb60d490f023f5239b9c0ca41f4503cca514ab5c7c8649a188afdd38360405180826000191660001916815260200191505060405180910390a1505050565b60075481565b6000806000803360008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16148061302b5750600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160009054906101000a900460ff165b90507f7fca019a0a52664785803f352d793a992f66c4affa261b3daf127976e7ad67998282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a18015156130a857600080fd5b6130b1876135fa565b945060036001016000866000191660001916815260200190815260200160002054935060036002016001600360020180549050038154811015156130f157fe5b906000526020600020900154925083600360010160008560001916600019168152602001908152602001600020819055508260036002018581548110151561313557fe5b90600052602060002090018160001916905550600360020180548091906001900361316091906141ce565b50600360000160008660001916600019168152602001908152602001600020600080820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556001820160006131b791906141fa565b6002820160006131c791906141fa565b6003820160006131d791906141fa565b6004820160006131e791906141fa565b5050600360010160008660001916600019168152602001908152602001600020600090557f25011d6c52f8dd436cbad877a1e1bfa99b3fc7b3df1c4f7b68d6f6403e943a51876003600201805490506040518080602001838152602001828103825284818151815260200191508051906020019080838360005b8381101561327c578082015181840152602081019050613261565b50505050905090810190601f1680156132a95780820380516001836020036101000a031916815260200191505b50935050505060405180910390a1600195505050505050919050565b3360008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16148061336f5750600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160009054906101000a900460ff165b90507f7fca019a0a52664785803f352d793a992f66c4affa261b3daf127976e7ad67998282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a18015156133ec57600080fd5b600160066000856000191660001916815260200190815260200160002060020160146101000a81548160ff0219169083151502179055507f3cc2375f3fc7711ba27361cde93880f578742f9f050acee766bed662d117ba728360405180826000191660001916815260200191505060405180910390a1505050565b3360008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161490507f7fca019a0a52664785803f352d793a992f66c4affa261b3daf127976e7ad67998282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a180151561353757600080fd5b6000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160006101000a81548160ff0219169083151502179055507f56a53756e1db2ff35a90edee9bd205b4b2bb8633ee3d6a53a5e85d5b46f0e9dc83604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1505050565b6000816040518082805190602001908083835b602083101515613632578051825260208201915060208101905060208303925061360d565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209050919050565b600061367061410e565b600080600061367f87876122c3565b92509250925082156136f6576000606060405190810160405280602681526020017f496e76616c69642063726564656e7469616c3a2063726564656e7469616c207281526020017f65766f6b6564000000000000000000000000000000000000000000000000000081525080905094509450613864565b80151561378d5780608060405190810160405280604581526020017f496e76616c696420726563697069656e743a20726563697069656e7420646f6581526020017f73206e6f74206d61746368206f726967696e616c207472616e73616374696f6e81526020017f206461746100000000000000000000000000000000000000000000000000000081525080905094509450613864565b8115156138245781608060405190810160405280605381526020017f496e76616c6964206461746120696e746567726974793a206461746120696e2081526020017f63726564656e7469616c20646f6573206e6f74206d61746368206f726967696e81526020017f616c207472616e73616374696f6e20646174610000000000000000000000000081525080905094509450613864565b60016040805190810160405280601381526020017f43726564656e7469616c2069732076616c696400000000000000000000000000815250809050945094505b5050509250929050565b60008282600754604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140183805190602001908083835b6020831015156138eb57805182526020820191506020810190506020830392506138c6565b6001836020036101000a03801982511681845116808217855250505050505090500182815260200193505050506040518091039020905092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60016020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154908060020160009054906101000a900460ff16905083565b6139ac614084565b6000600360000160006139be886135fa565b6000191660001916815260200190815260200160002060a060405190810160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015613acf5780601f10613aa457610100808354040283529160200191613acf565b820191906000526020600020905b815481529060010190602001808311613ab257829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015613b715780601f10613b4657610100808354040283529160200191613b71565b820191906000526020600020905b815481529060010190602001808311613b5457829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015613c135780601f10613be857610100808354040283529160200191613c13565b820191906000526020600020905b815481529060010190602001808311613bf657829003601f168201915b50505050508152602001600482018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015613cb55780601f10613c8a57610100808354040283529160200191613cb5565b820191906000526020600020905b815481529060010190602001808311613c9857829003601f168201915b5050505050815250509150600073ffffffffffffffffffffffffffffffffffffffff16826000015173ffffffffffffffffffffffffffffffffffffffff1614151515613d0057600080fd5b8390508073ffffffffffffffffffffffffffffffffffffffff16634e3943e7836000015184602001518560400151866060015187608001518b8b8b6040518963ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001806020018060200180602001806020018881526020018773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001866000191660001916815260200185810385528c818151815260200191508051906020019080838360005b83811015613e2a578082015181840152602081019050613e0f565b50505050905090810190601f168015613e575780820380516001836020036101000a031916815260200191505b5085810384528b818151815260200191508051906020019080838360005b83811015613e90578082015181840152602081019050613e75565b50505050905090810190601f168015613ebd5780820380516001836020036101000a031916815260200191505b5085810383528a818151815260200191508051906020019080838360005b83811015613ef6578082015181840152602081019050613edb565b50505050905090810190601f168015613f235780820380516001836020036101000a031916815260200191505b50858103825289818151815260200191508051906020019080838360005b83811015613f5c578082015181840152602081019050613f41565b50505050905090810190601f168015613f895780820380516001836020036101000a031916815260200191505b509c50505050505050505050505050600060405180830381600087803b1515613fb157600080fd5b6102c65a03f11515613fc257600080fd5b5050508373ffffffffffffffffffffffffffffffffffffffff167fba451c931e2011b181517e87b4faa9ded9887fd9fdc41479f2e4ed86c0ce300183604001516040518080602001828103825283818151815260200191508051906020019080838360005b83811015614042578082015181840152602081019050614027565b50505050905090810190601f16801561406f5780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505050505050565b60a060405190810160405280600073ffffffffffffffffffffffffffffffffffffffff1681526020016140b5614242565b81526020016140c2614242565b81526020016140cf614242565b81526020016140dc614242565b81525090565b815481835581811511614109578183600052602060002091820191016141089190614256565b5b505050565b602060405190810160405280600081525090565b81548183558181151161414957818360005260206000209182019101614148919061427b565b5b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061418f57805160ff19168380011785556141bd565b828001600101855582156141bd579182015b828111156141bc5782518255916020019190600101906141a1565b5b5090506141ca9190614256565b5090565b8154818355818115116141f5578183600052602060002091820191016141f4919061427b565b5b505050565b50805460018160011615610100020316600290046000825580601f10614220575061423f565b601f01602090049060005260206000209081019061423e9190614256565b5b50565b602060405190810160405280600081525090565b61427891905b8082111561427457600081600090555060010161425c565b5090565b90565b61429d91905b80821115614299576000816000905550600101614281565b5090565b905600a165627a7a723058207fc9ed5ff35de5ce28f24fcf81ac19dec29a3084f5881fc8b0596f93e67bc4240029", "sourceMap": "132:2479:4:-;;;442:247;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;543:16;845::7;535::6;894::2;601::0;593:5;;:24;;;;;;;;;;;;;;;;;;524:100;822:92:2;571:1:6;563:5;:9;;;;461:118;775:90:7;578:5:4;571:4;:12;;;;;;;;;;;;:::i;:::-;;599:4;593:3;:10;;;;;;;;;;;;:::i;:::-;;638:4;613:14;;:30;;;;;;;;;;;;;;;;;;675:6;653:3;;:29;;;;;;;;;;;;;;;;;;442:247;;;;132:2479;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;", "deployedSourceMap": "132:2479:4:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;758:621:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;393:18:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;357:29:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;376:54:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1708:354;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5010:141:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;103:376:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3736:129:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2378:272:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1103:564:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1500:247:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;2904:125:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;417:17:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1665:618:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4650:133:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2445:163:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2212:630:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1056:271;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4050:459;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2790:135:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2690:161:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;437:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2937:660:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2442:156:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1945:190:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;4831:126:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;871:564:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2200:154:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;109:20:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;370:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;758:621:6;948:21;1010:18;;:::i;:::-;1073:21;869:10;849:17:0;881:5;;;;;;;;;;;870:16;;:7;:16;;;:63;;;;890:21;:30;912:7;890:30;;;;;;;;;;;;;;;:43;;;;;;;;;;;;870:63;849:85;;944:39;961:7;970:12;944:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1001:12;993:21;;;;;;;;931:5:6;;:7;;;;;;;;;;;;;972:28;989:10;972:16;:28::i;:::-;948:52;;1031:10;:17;;:32;1049:13;1031:32;;;;;;;;;;;;;;;;;1010:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1097:183;1127:5;:12;;;1153:5;:17;;;1184:5;:10;;;1208:5;:11;;;1233:5;:13;;;1260:10;1097:16;:183::i;:::-;1073:207;;1318:54;;;;;;;;;1330:7;1318:54;;;;;;;1339:13;1318:54;;;;;;;1354:10;1318:54;;;;;;1366:5;1318:54;;;;;1290:16;:25;1307:7;1290:25;;;;;;;;;;;;;;;;;:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;758:621;;;;;;;;:::o;393:18:4:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;357:29::-;;;;;;;;;;;;;:::o;376:54:6:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1708:354::-;1765:14;1781:21;1804:17;1823:12;1867:16;:25;1884:7;1867:25;;;;;;;;;;;;;;;;;:29;;;1910:16;:25;1927:7;1910:25;;;;;;;;;;;;;;;;;:39;;;1963:16;:25;1980:7;1963:25;;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;2012:16;:25;2029:7;2012:25;;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;1847:208;;;;;;;;1708:354;;;;;:::o;5010:141:2:-;5088:12;5129:5;5136:7;5119:25;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:2;51:6;36:153;;;182:3;176:5;171:3;164:6;98:2;93:3;89;82:19;;123:2;118:3;114;107:19;;148:2;143:3;139;132:19;;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5112:32:2;;5010:141;;;;:::o;103:376:1:-;287:13;344:6;366:11;393:4;413:5;434:7;457:9;319:155;;;;;;;;;;;;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:2;51:6;36:153;;;182:3;176:5;171:3;164:6;98:2;93:3;89;82:19;;123:2;118:3;114;107:19;;148:2;143:3;139;132:19;;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;36:153;66:2;61:3;58:2;51:6;36:153;;;182:3;176:5;171:3;164:6;98:2;93:3;89;82:19;;123:2;118:3;114;107:19;;148:2;143:3;139;132:19;;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;36:153;66:2;61:3;58:2;51:6;36:153;;;182:3;176:5;171:3;164:6;98:2;93:3;89;82:19;;123:2;118:3;114;107:19;;148:2;143:3;139;132:19;;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;36:153;66:2;61:3;58:2;51:6;36:153;;;182:3;176:5;171:3;164:6;98:2;93:3;89;82:19;;123:2;118:3;114;107:19;;148:2;143:3;139;132:19;;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;312:162:1;;103:376;;;;;;;;:::o;3736:129:2:-;3793:10;3826;:25;;:32;;;;3819:39;;3736:129;:::o;2378:272:0:-;2441:15;2472:21;:53;2494:22;2517:6;2494:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;2472:53;;;;;;;;;;;;;;;:66;;;;;;;;;;;;2468:176;;;2561:22;2584:6;2561:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;2554:37;;;;2468:176;160:42;2622:11;;2378:272;;;;:::o;1103:564:4:-;1259:12;1419:15;1219:10;849:17:0;881:5;;;;;;;;;;;870:16;;:7;:16;;;:63;;;;890:21;:30;912:7;890:30;;;;;;;;;;;;;;;:43;;;;;;;;;;;;870:63;849:85;;944:39;961:7;970:12;944:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1001:12;993:21;;;;;;;;736:3:4;;;;;;;;;;;:16;;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;728:27;;;;;;;;1297:1;1285:8;:13;;1281:129;;;1324:8;1314:18;;1281:129;;;1391:7;1380:8;:18;1373:3;:26;1363:36;;1281:129;1437:45;1457:14;;;;;;;;;;;1473:8;;1437:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:19;:45::i;:::-;1419:63;;1492:116;1522:10;1546:7;1567:10;1591:7;1492:16;:116::i;:::-;1618:42;1628:7;1637:10;1649;1618:9;:42::i;:::-;1103:564;;;;;;;:::o;1500:247:0:-;1562:10;1147:17;1179:5;;;;;;;;;;;1168:16;;:7;:16;;;1147:38;;1195:39;1212:7;1221:12;1195:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1252:12;1244:21;;;;;;;;1620:78;;;;;;;;;1638:10;1620:78;;;;;;1690:1;1650:22;:39;;;;;;;;;;;:::i;:::-;;;;;;;;;;1678:10;1650:39;;;;;;;;;;;;;;;;;;;;;;:41;1620:78;;;;1693:4;1620:78;;;;;1584:21;:33;1606:10;1584:33;;;;;;;;;;;;;;;:114;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1708:32;1729:10;1708:32;;;;;;;;;;;;;;;;;;;;;;1500:247;;;:::o;2904:125:6:-;2964:6;2989:16;:25;3006:7;2989:25;;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;2982:40;;2904:125;;;:::o;417:17:4:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1665:618:7:-;1755:13;1771:24;1797:20;1834:3;1839:13;1854:9;1865:7;2059:13;2103:22;1876:15;1883:7;1876:6;:15::i;:::-;1829:62;;;;;;;;726:42;1906:17;;:9;:17;;;1902:147;;;1946:4;1952:5;1959;1939:26;;;;;;;;1902:147;1986:7;1982:67;;;2016:7;2025:5;2032;2009:29;;;;;;;;1982:67;2082:10;2059:34;;2128:6;:23;;;2152:3;2128:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2103:53;;2173:7;2213:13;2195:31;;;:14;:31;;;;2256:9;2242:23;;:10;:23;;;2166:110;;;;;;1665:618;;;;;;;;;;;;:::o;4650:133:2:-;4711:13;4743:10;:25;;4769:6;4743:33;;;;;;;;;;;;;;;;;;;4736:40;;4650:133;;;:::o;2445:163:4:-;2488:15;2505:17;2524:12;;:::i;:::-;2538:11;;:::i;:::-;2568:5;;;;;;;;;;;2575:14;;;;;;;;;;;2591:4;2597:3;2561:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2445:163;;;;:::o;2212:630:2:-;2408:21;2465:10;2535:18;;:::i;:::-;2352:10;849:17:0;881:5;;;;;;;;;;;870:16;;:7;:16;;;:63;;;;890:21;:30;912:7;890:30;;;;;;;;;;;;;;;:43;;;;;;;;;;;;870:63;849:85;;944:39;961:7;970:12;944:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1001:12;993:21;;;;;;;;2376:5:2;1016:15;1025:5;1016:8;:15::i;:::-;1008:24;;;;;;;;2432:23;2449:5;2432:16;:23::i;:::-;2408:47;;2524:1;2478:10;:25;;:45;;;;;;;;;;;:::i;:::-;;;;;;;;;;2509:13;2478:45;;;;;;;;;;;:47;2465:60;;2556:129;;;;;;;;;2583:4;2556:129;;;;;;2602:12;2556:129;;;;2628:5;2556:129;;;;2647:6;2556:129;;;;2667:8;2556:129;;;2535:150;;2730:5;2695:10;:17;;:32;2713:13;2695:32;;;;;;;;;;;;;;;;;:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;2782:5;2745:10;:19;;:34;2765:13;2745:34;;;;;;;;;;;;;;;;;:42;;;;2822:5;:12;;;2797:38;;;2810:5;:10;;;2797:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1024:1:0;2212:630:2;;;;;;;;;:::o;1056:271::-;1112:11;1135:21;1159:23;1176:5;1159:16;:23::i;:::-;1135:47;;1236:1;1200:10;:25;;:32;;;;:37;:119;;;;1306:13;1241:78;;;:10;:25;;1267:10;:19;;:34;1287:13;1267:34;;;;;;;;;;;;;;;;;;1241:61;;;;;;;;;;;;;;;;;;;:78;;;;;1200:119;1192:128;;1056:271;;;;:::o;4050:459::-;4161:14;4185:18;;:::i;:::-;4213:12;;:::i;:::-;4235;;:::i;:::-;4257:14;;:::i;:::-;4288:18;;:::i;:::-;4112:14;1790:1;1755:10;:25;;:32;;;;:36;:120;;;;;1861:14;1795:80;;;:10;:25;;1821:10;:19;;:35;1841:14;1821:35;;;;;;;;;;;;;;;;;;1795:62;;;;;;;;;;;;;;;;;;;:80;;;;1755:120;1747:129;;;;;;;;4309:10;:17;;:33;4327:14;4309:33;;;;;;;;;;;;;;;;;4288:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4373:5;:12;;;4399:5;:17;;;4430:5;:10;;;4454:5;:11;;;4479:5;:13;;;4352:150;;;;;;;;;;;;;;;;;;;;;;4050:459;;;;;;;;;:::o;2790:135:0:-;2851:19;2889:22;:29;;;;2882:36;;2790:135;:::o;2690:161:6:-;2743:10;849:17:0;881:5;;;;;;;;;;;870:16;;:7;:16;;;:63;;;;890:21;:30;912:7;890:30;;;;;;;;;;;;;;;:43;;;;;;;;;;;;870:63;849:85;;944:39;961:7;970:12;944:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1001:12;993:21;;;;;;;;2801:5:6;2765:16;:25;2782:7;2765:25;;;;;;;;;;;;;;;;;:33;;;:41;;;;;;;;;;;;;;;;;;2816:28;2836:7;2816:28;;;;;;;;;;;;;;;;;;;;;;;;2690:161;;;:::o;437:17::-;;;;:::o;2937:660:2:-;3018:12;3046:21;3103:16;3166:17;2987:10;849:17:0;881:5;;;;;;;;;;;870:16;;:7;:16;;;:63;;;;890:21;:30;912:7;890:30;;;;;;;;;;;;;;;:43;;;;;;;;;;;;870:63;849:85;;944:39;961:7;970:12;944:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1001:12;993:21;;;;;;;;3070:23:2;3087:5;3070:16;:23::i;:::-;3046:47;;3122:10;:19;;:34;3142:13;3122:34;;;;;;;;;;;;;;;;;;3103:53;;3186:10;:25;;3245:1;3212:10;:25;;:32;;;;:34;3186:61;;;;;;;;;;;;;;;;;;;3166:81;;3290:11;3257:10;:19;;:30;3277:9;3257:30;;;;;;;;;;;;;;;;;:44;;;;3352:9;3311:10;:25;;3337:11;3311:38;;;;;;;;;;;;;;;;;;:50;;;;;;;3371:10;:25;;:34;;;;;;;;;;;;:::i;:::-;;3422:10;:17;;:32;3440:13;3422:32;;;;;;;;;;;;;;;;;;3415:39;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;3471:10;:19;;:34;3491:13;3471:34;;;;;;;;;;;;;;;;;3464:41;;;3516:53;3529:5;3536:10;:25;;:32;;;;3516:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3586:4:2;3579:11;;2937:660;;;;;;;;:::o;2442:156:6:-;2493:10;849:17:0;881:5;;;;;;;;;;;870:16;;:7;:16;;;:63;;;;890:21;:30;912:7;890:30;;;;;;;;;;;;;;;:43;;;;;;;;;;;;870:63;849:85;;944:39;961:7;970:12;944:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1001:12;993:21;;;;;;;;2551:4:6;2515:16;:25;2532:7;2515:25;;;;;;;;;;;;;;;;;:33;;;:40;;;;;;;;;;;;;;;;;;2565:26;2583:7;2565:26;;;;;;;;;;;;;;;;;;;;;;;;2442:156;;;:::o;1945:190:0:-;2012:10;1147:17;1179:5;;;;;;;;;;;1168:16;;:7;:16;;;1147:38;;1195:39;1212:7;1221:12;1195:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1252:12;1244:21;;;;;;;;2080:5;2034:21;:30;2056:7;2034:30;;;;;;;;;;;;;;;:43;;;:51;;;;;;;;;;;;;;;;;;2095:33;2120:7;2095:33;;;;;;;;;;;;;;;;;;;;;;1945:190;;;:::o;4831:126:2:-;4897:13;4939:10;4929:21;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:2;51:6;36:153;;;182:3;176:5;171:3;164:6;98:2;93:3;89;82:19;;123:2;118:3;114;107:19;;148:2;143:3;139;132:19;;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;4922:28:2;;4831:126;;;:::o;871:564:7:-;958:15;975:13;;:::i;:::-;1005:8;1015:19;1036:15;1055:40;1075:7;1084:10;1055:19;:40::i;:::-;1000:95;;;;;;1109:8;1105:324;;;1140:5;1147:7;;;;;;;;;;;;;;;;;;;;;;;1133:22;;;;;;;;;1105:324;1177:15;1176:16;1172:257;;;1215:15;1232:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;1208:42;;;;;;;;;1172:257;1272:19;1271:20;1267:162;;;1314:19;1335:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;1307:50;;;;;;;;;1267:162;1395:4;1401:16;;;;;;;;;;;;;;;;;;1388:30;;;;;;;871:564;;;;;;;;;:::o;2200:154:6:-;2282:11;2322:7;2331:8;2341:5;;2312:35;;;;;;;;;;;;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:2;51:6;36:153;;;182:3;176:5;171:3;164:6;98:2;93:3;89;82:19;;123:2;118:3;114;107:19;;148:2;143:3;139;132:19;;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;;;;;;;;2305:42:6;;2200:154;;;;:::o;109:20:0:-;;;;;;;;;;;;;:::o;370:65::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1768:639:4:-;1924:18;;:::i;:::-;2041:13;1945:10;:17;;:47;1963:28;1980:10;1963:16;:28::i;:::-;1945:47;;;;;;;;;;;;;;;;;1924:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;267:42;2010:20;;:5;:12;;;:20;;;;2002:29;;;;;;;;2064:10;2041:34;;2085:6;:22;;;2121:5;:12;;;2147:5;:17;;;2178:5;:10;;;2202:5;:11;;;2227:5;:13;;;2254:7;2275:10;2299:7;2085:231;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2380:10:4;2326:74;;;2356:5;:10;;;2326:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1768:639:4;;;;;;:::o;132:2479::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o", "source": "pragma solidity ^0.4.17;\n\nimport \"BadgeForceToken/contracts/BadgeForceToken.sol\";\n\nimport \"./Holder.sol\";\nimport \"./Verifier.sol\";\n\ncontract Issuer is Verifier {\n //access the badgeforce token contract\n BadgeForceToken private BFT;\n\n address constant NONE = 0x0000000000000000000000000000000000000000;\n\n /// @notice address of this contract\n address public issuerContract;\n\n string public name;\n string public url;\n\n\n function Issuer(address _adminWalletAddr, string _name, string _url, address _token) public Verifier(_adminWalletAddr) {\n name = _name;\n url = _url;\n issuerContract = address(this);\n BFT = BadgeForceToken(_token);\n }\n\n modifier payForIssue() {\n require(BFT.burnForIssue());\n _;\n }\n\n event CredentialIssued(\n string _badgeName,\n address indexed _recipient\n );\n /// @notice issue a new credential to a recipient contract\n /// @param _badgeName name of the badge to issue\n /// @param _recipient address of the holder contract\n /// @param _expires expire date (number of weeks)\n function issue(\n string _badgeName,\n address _recipient,\n uint _expires)\n public authorized(msg.sender) payForIssue()\n {\n uint expires;\n if (_expires <= 0) {\n expires = _expires;\n } else {\n expires = now + (_expires * 1 weeks);\n }\n bytes32 _txnKey = getCredentialTxnKey(issuerContract, msg.data);\n _sendToRecipient(\n _badgeName,\n expires,\n _recipient,\n _txnKey\n );\n setNewTxn(_txnKey, _recipient, _badgeName);\n }\n\n /// @notice internal method that gets instance of recipient contract and stores credential\n function _sendToRecipient(\n string _badgeName,\n uint expires,\n address _recipient,\n bytes32 _txnKey\n ) private\n {\n Badge memory badge = badgeVault.badges[getBadgeNameHash(_badgeName)];\n require(badge.issuer != NONE);\n Holder holder = Holder(_recipient);\n holder.storeCredential(\n badge.issuer,\n badge.description,\n badge.name,\n badge.image,\n badge.version,\n expires,\n _recipient,\n _txnKey\n );\n CredentialIssued(\n badge.name,\n _recipient\n );\n }\n\n /// @notice get issuer info\n function getInfo() public constant returns(address _issuer, address _contract, string _name, string _url) {\n return(admin, issuerContract, name, url);\n }\n\n}\n", @@ -783,7 +783,7 @@ "absolutePath": "/home/kc1116/Desktop/badgeforce_development/badgeforce/contracts/Issuer.sol", "exportedSymbols": { "Issuer": [ - 1318 + 1341 ] } }, @@ -797,52 +797,52 @@ ".17" ] }, - "id": 1115, + "id": 1138, "name": "PragmaDirective", "src": "0:24:4" }, { "attributes": { - "SourceUnit": 1798, + "SourceUnit": 1821, "absolutePath": "BadgeForceToken/contracts/BadgeForceToken.sol", "file": "BadgeForceToken/contracts/BadgeForceToken.sol", - "scope": 1319, + "scope": 1342, "symbolAliases": [ null ], "unitAlias": "" }, - "id": 1116, + "id": 1139, "name": "ImportDirective", "src": "26:55:4" }, { "attributes": { - "SourceUnit": 1114, + "SourceUnit": 1137, "absolutePath": "/home/kc1116/Desktop/badgeforce_development/badgeforce/contracts/Holder.sol", "file": "./Holder.sol", - "scope": 1319, + "scope": 1342, "symbolAliases": [ null ], "unitAlias": "" }, - "id": 1117, + "id": 1140, "name": "ImportDirective", "src": "83:22:4" }, { "attributes": { - "SourceUnit": 1730, + "SourceUnit": 1753, "absolutePath": "/home/kc1116/Desktop/badgeforce_development/badgeforce/contracts/Verifier.sol", "file": "./Verifier.sol", - "scope": 1319, + "scope": 1342, "symbolAliases": [ null ], "unitAlias": "" }, - "id": 1118, + "id": 1141, "name": "ImportDirective", "src": "106:24:4" }, @@ -852,22 +852,22 @@ 176, 206, 604, - 1580, - 1729 + 1603, + 1752 ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, "linearizedBaseContracts": [ - 1318, - 1729, - 1580, + 1341, + 1752, + 1603, 206, 604, 176 ], "name": "Issuer", - "scope": 1319 + "scope": 1342 }, "children": [ { @@ -881,15 +881,15 @@ "attributes": { "contractScope": null, "name": "Verifier", - "referencedDeclaration": 1729, + "referencedDeclaration": 1752, "type": "contract Verifier" }, - "id": 1119, + "id": 1142, "name": "UserDefinedTypeName", "src": "151:8:4" } ], - "id": 1120, + "id": 1143, "name": "InheritanceSpecifier", "src": "151:8:4" }, @@ -897,7 +897,7 @@ "attributes": { "constant": false, "name": "BFT", - "scope": 1318, + "scope": 1341, "stateVariable": true, "storageLocation": "default", "type": "contract BadgeForceToken", @@ -909,15 +909,15 @@ "attributes": { "contractScope": null, "name": "BadgeForceToken", - "referencedDeclaration": 1797, + "referencedDeclaration": 1820, "type": "contract BadgeForceToken" }, - "id": 1121, + "id": 1144, "name": "UserDefinedTypeName", "src": "209:15:4" } ], - "id": 1122, + "id": 1145, "name": "VariableDeclaration", "src": "209:27:4" }, @@ -925,7 +925,7 @@ "attributes": { "constant": true, "name": "NONE", - "scope": 1318, + "scope": 1341, "stateVariable": true, "storageLocation": "default", "type": "address", @@ -937,7 +937,7 @@ "name": "address", "type": "address" }, - "id": 1123, + "id": 1146, "name": "ElementaryTypeName", "src": "243:7:4" }, @@ -954,12 +954,12 @@ "type": "address", "value": "0x0000000000000000000000000000000000000000" }, - "id": 1124, + "id": 1147, "name": "Literal", "src": "267:42:4" } ], - "id": 1125, + "id": 1148, "name": "VariableDeclaration", "src": "243:66:4" }, @@ -967,7 +967,7 @@ "attributes": { "constant": false, "name": "issuerContract", - "scope": 1318, + "scope": 1341, "stateVariable": true, "storageLocation": "default", "type": "address", @@ -980,12 +980,12 @@ "name": "address", "type": "address" }, - "id": 1126, + "id": 1149, "name": "ElementaryTypeName", "src": "357:7:4" } ], - "id": 1127, + "id": 1150, "name": "VariableDeclaration", "src": "357:29:4" }, @@ -993,7 +993,7 @@ "attributes": { "constant": false, "name": "name", - "scope": 1318, + "scope": 1341, "stateVariable": true, "storageLocation": "default", "type": "string storage ref", @@ -1006,12 +1006,12 @@ "name": "string", "type": "string storage pointer" }, - "id": 1128, + "id": 1151, "name": "ElementaryTypeName", "src": "393:6:4" } ], - "id": 1129, + "id": 1152, "name": "VariableDeclaration", "src": "393:18:4" }, @@ -1019,7 +1019,7 @@ "attributes": { "constant": false, "name": "url", - "scope": 1318, + "scope": 1341, "stateVariable": true, "storageLocation": "default", "type": "string storage ref", @@ -1032,12 +1032,12 @@ "name": "string", "type": "string storage pointer" }, - "id": 1130, + "id": 1153, "name": "ElementaryTypeName", "src": "417:6:4" } ], - "id": 1131, + "id": 1154, "name": "VariableDeclaration", "src": "417:17:4" }, @@ -1048,7 +1048,7 @@ "isConstructor": true, "name": "Issuer", "payable": false, - "scope": 1318, + "scope": 1341, "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" @@ -1060,7 +1060,7 @@ "attributes": { "constant": false, "name": "_adminWalletAddr", - "scope": 1166, + "scope": 1189, "stateVariable": false, "storageLocation": "default", "type": "address", @@ -1073,12 +1073,12 @@ "name": "address", "type": "address" }, - "id": 1132, + "id": 1155, "name": "ElementaryTypeName", "src": "458:7:4" } ], - "id": 1133, + "id": 1156, "name": "VariableDeclaration", "src": "458:24:4" }, @@ -1086,7 +1086,7 @@ "attributes": { "constant": false, "name": "_name", - "scope": 1166, + "scope": 1189, "stateVariable": false, "storageLocation": "default", "type": "string memory", @@ -1099,12 +1099,12 @@ "name": "string", "type": "string storage pointer" }, - "id": 1134, + "id": 1157, "name": "ElementaryTypeName", "src": "484:6:4" } ], - "id": 1135, + "id": 1158, "name": "VariableDeclaration", "src": "484:12:4" }, @@ -1112,7 +1112,7 @@ "attributes": { "constant": false, "name": "_url", - "scope": 1166, + "scope": 1189, "stateVariable": false, "storageLocation": "default", "type": "string memory", @@ -1125,12 +1125,12 @@ "name": "string", "type": "string storage pointer" }, - "id": 1136, + "id": 1159, "name": "ElementaryTypeName", "src": "498:6:4" } ], - "id": 1137, + "id": 1160, "name": "VariableDeclaration", "src": "498:11:4" }, @@ -1138,7 +1138,7 @@ "attributes": { "constant": false, "name": "_token", - "scope": 1166, + "scope": 1189, "stateVariable": false, "storageLocation": "default", "type": "address", @@ -1151,17 +1151,17 @@ "name": "address", "type": "address" }, - "id": 1138, + "id": 1161, "name": "ElementaryTypeName", "src": "511:7:4" } ], - "id": 1139, + "id": 1162, "name": "VariableDeclaration", "src": "511:14:4" } ], - "id": 1140, + "id": 1163, "name": "ParameterList", "src": "457:69:4" }, @@ -1172,7 +1172,7 @@ ] }, "children": [], - "id": 1144, + "id": 1167, "name": "ParameterList", "src": "561:0:4" }, @@ -1184,11 +1184,11 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1729, + "referencedDeclaration": 1752, "type": "type(contract Verifier)", "value": "Verifier" }, - "id": 1141, + "id": 1164, "name": "Identifier", "src": "534:8:4" }, @@ -1198,16 +1198,16 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1133, + "referencedDeclaration": 1156, "type": "address", "value": "_adminWalletAddr" }, - "id": 1142, + "id": 1165, "name": "Identifier", "src": "543:16:4" } ], - "id": 1143, + "id": 1166, "name": "ModifierInvocation", "src": "534:26:4" }, @@ -1232,11 +1232,11 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1129, + "referencedDeclaration": 1152, "type": "string storage ref", "value": "name" }, - "id": 1145, + "id": 1168, "name": "Identifier", "src": "571:4:4" }, @@ -1246,21 +1246,21 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1135, + "referencedDeclaration": 1158, "type": "string memory", "value": "_name" }, - "id": 1146, + "id": 1169, "name": "Identifier", "src": "578:5:4" } ], - "id": 1147, + "id": 1170, "name": "Assignment", "src": "571:12:4" } ], - "id": 1148, + "id": 1171, "name": "ExpressionStatement", "src": "571:12:4" }, @@ -1283,11 +1283,11 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1131, + "referencedDeclaration": 1154, "type": "string storage ref", "value": "url" }, - "id": 1149, + "id": 1172, "name": "Identifier", "src": "593:3:4" }, @@ -1297,21 +1297,21 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1137, + "referencedDeclaration": 1160, "type": "string memory", "value": "_url" }, - "id": 1150, + "id": 1173, "name": "Identifier", "src": "599:4:4" } ], - "id": 1151, + "id": 1174, "name": "Assignment", "src": "593:10:4" } ], - "id": 1152, + "id": 1175, "name": "ExpressionStatement", "src": "593:10:4" }, @@ -1334,11 +1334,11 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1127, + "referencedDeclaration": 1150, "type": "address", "value": "issuerContract" }, - "id": 1153, + "id": 1176, "name": "Identifier", "src": "613:14:4" }, @@ -1361,7 +1361,7 @@ "attributes": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Issuer_$1318", + "typeIdentifier": "t_contract$_Issuer_$1341", "typeString": "contract Issuer" } ], @@ -1372,7 +1372,7 @@ "type": "type(address)", "value": "address" }, - "id": 1154, + "id": 1177, "name": "ElementaryTypeNameExpression", "src": "630:7:4" }, @@ -1382,26 +1382,26 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 2520, + "referencedDeclaration": 2543, "type": "contract Issuer", "value": "this" }, - "id": 1155, + "id": 1178, "name": "Identifier", "src": "638:4:4" } ], - "id": 1156, + "id": 1179, "name": "FunctionCall", "src": "630:13:4" } ], - "id": 1157, + "id": 1180, "name": "Assignment", "src": "613:30:4" } ], - "id": 1158, + "id": 1181, "name": "ExpressionStatement", "src": "613:30:4" }, @@ -1424,11 +1424,11 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1122, + "referencedDeclaration": 1145, "type": "contract BadgeForceToken", "value": "BFT" }, - "id": 1159, + "id": 1182, "name": "Identifier", "src": "653:3:4" }, @@ -1458,11 +1458,11 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1797, + "referencedDeclaration": 1820, "type": "type(contract BadgeForceToken)", "value": "BadgeForceToken" }, - "id": 1160, + "id": 1183, "name": "Identifier", "src": "659:15:4" }, @@ -1472,36 +1472,36 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1139, + "referencedDeclaration": 1162, "type": "address", "value": "_token" }, - "id": 1161, + "id": 1184, "name": "Identifier", "src": "675:6:4" } ], - "id": 1162, + "id": 1185, "name": "FunctionCall", "src": "659:23:4" } ], - "id": 1163, + "id": 1186, "name": "Assignment", "src": "653:29:4" } ], - "id": 1164, + "id": 1187, "name": "ExpressionStatement", "src": "653:29:4" } ], - "id": 1165, + "id": 1188, "name": "Block", "src": "561:128:4" } ], - "id": 1166, + "id": 1189, "name": "FunctionDefinition", "src": "442:247:4" }, @@ -1518,7 +1518,7 @@ ] }, "children": [], - "id": 1167, + "id": 1190, "name": "ParameterList", "src": "715:2:4" }, @@ -1552,11 +1552,11 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 2482, + "referencedDeclaration": 2505, "type": "function (bool) pure", "value": "require" }, - "id": 1168, + "id": 1191, "name": "Identifier", "src": "728:7:4" }, @@ -1588,7 +1588,7 @@ "isPure": false, "lValueRequested": false, "member_name": "burnForIssue", - "referencedDeclaration": 1796, + "referencedDeclaration": 1819, "type": "function () external returns (bool)" }, "children": [ @@ -1598,46 +1598,46 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1122, + "referencedDeclaration": 1145, "type": "contract BadgeForceToken", "value": "BFT" }, - "id": 1169, + "id": 1192, "name": "Identifier", "src": "736:3:4" } ], - "id": 1170, + "id": 1193, "name": "MemberAccess", "src": "736:16:4" } ], - "id": 1171, + "id": 1194, "name": "FunctionCall", "src": "736:18:4" } ], - "id": 1172, + "id": 1195, "name": "FunctionCall", "src": "728:27:4" } ], - "id": 1173, + "id": 1196, "name": "ExpressionStatement", "src": "728:27:4" }, { - "id": 1174, + "id": 1197, "name": "PlaceholderStatement", "src": "765:1:4" } ], - "id": 1175, + "id": 1198, "name": "Block", "src": "718:55:4" } ], - "id": 1176, + "id": 1199, "name": "ModifierDefinition", "src": "695:78:4" }, @@ -1654,7 +1654,7 @@ "constant": false, "indexed": false, "name": "_badgeName", - "scope": 1182, + "scope": 1205, "stateVariable": false, "storageLocation": "default", "type": "string memory", @@ -1667,12 +1667,12 @@ "name": "string", "type": "string storage pointer" }, - "id": 1177, + "id": 1200, "name": "ElementaryTypeName", "src": "811:6:4" } ], - "id": 1178, + "id": 1201, "name": "VariableDeclaration", "src": "811:17:4" }, @@ -1681,7 +1681,7 @@ "constant": false, "indexed": true, "name": "_recipient", - "scope": 1182, + "scope": 1205, "stateVariable": false, "storageLocation": "default", "type": "address", @@ -1694,22 +1694,22 @@ "name": "address", "type": "address" }, - "id": 1179, + "id": 1202, "name": "ElementaryTypeName", "src": "838:7:4" } ], - "id": 1180, + "id": 1203, "name": "VariableDeclaration", "src": "838:26:4" } ], - "id": 1181, + "id": 1204, "name": "ParameterList", "src": "801:69:4" } ], - "id": 1182, + "id": 1205, "name": "EventDefinition", "src": "779:92:4" }, @@ -1720,7 +1720,7 @@ "isConstructor": false, "name": "issue", "payable": false, - "scope": 1318, + "scope": 1341, "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" @@ -1732,7 +1732,7 @@ "attributes": { "constant": false, "name": "_badgeName", - "scope": 1241, + "scope": 1264, "stateVariable": false, "storageLocation": "default", "type": "string memory", @@ -1745,12 +1745,12 @@ "name": "string", "type": "string storage pointer" }, - "id": 1183, + "id": 1206, "name": "ElementaryTypeName", "src": "1127:6:4" } ], - "id": 1184, + "id": 1207, "name": "VariableDeclaration", "src": "1127:17:4" }, @@ -1758,7 +1758,7 @@ "attributes": { "constant": false, "name": "_recipient", - "scope": 1241, + "scope": 1264, "stateVariable": false, "storageLocation": "default", "type": "address", @@ -1771,12 +1771,12 @@ "name": "address", "type": "address" }, - "id": 1185, + "id": 1208, "name": "ElementaryTypeName", "src": "1154:7:4" } ], - "id": 1186, + "id": 1209, "name": "VariableDeclaration", "src": "1154:18:4" }, @@ -1784,7 +1784,7 @@ "attributes": { "constant": false, "name": "_expires", - "scope": 1241, + "scope": 1264, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -1797,17 +1797,17 @@ "name": "uint", "type": "uint256" }, - "id": 1187, + "id": 1210, "name": "ElementaryTypeName", "src": "1182:4:4" } ], - "id": 1188, + "id": 1211, "name": "VariableDeclaration", "src": "1182:13:4" } ], - "id": 1189, + "id": 1212, "name": "ParameterList", "src": "1117:79:4" }, @@ -1818,7 +1818,7 @@ ] }, "children": [], - "id": 1196, + "id": 1219, "name": "ParameterList", "src": "1249:0:4" }, @@ -1834,7 +1834,7 @@ "type": "modifier (address)", "value": "authorized" }, - "id": 1190, + "id": 1213, "name": "Identifier", "src": "1208:10:4" }, @@ -1856,21 +1856,21 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 2479, + "referencedDeclaration": 2502, "type": "msg", "value": "msg" }, - "id": 1191, + "id": 1214, "name": "Identifier", "src": "1219:3:4" } ], - "id": 1192, + "id": 1215, "name": "MemberAccess", "src": "1219:10:4" } ], - "id": 1193, + "id": 1216, "name": "ModifierInvocation", "src": "1208:22:4" }, @@ -1887,16 +1887,16 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1176, + "referencedDeclaration": 1199, "type": "modifier ()", "value": "payForIssue" }, - "id": 1194, + "id": 1217, "name": "Identifier", "src": "1231:11:4" } ], - "id": 1195, + "id": 1218, "name": "ModifierInvocation", "src": "1231:13:4" }, @@ -1914,7 +1914,7 @@ "attributes": { "constant": false, "name": "expires", - "scope": 1241, + "scope": 1264, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -1927,17 +1927,17 @@ "name": "uint", "type": "uint256" }, - "id": 1197, + "id": 1220, "name": "ElementaryTypeName", "src": "1259:4:4" } ], - "id": 1198, + "id": 1221, "name": "VariableDeclaration", "src": "1259:12:4" } ], - "id": 1199, + "id": 1222, "name": "VariableDeclarationStatement", "src": "1259:12:4" }, @@ -1964,11 +1964,11 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1188, + "referencedDeclaration": 1211, "type": "uint256", "value": "_expires" }, - "id": 1200, + "id": 1223, "name": "Identifier", "src": "1285:8:4" }, @@ -1985,12 +1985,12 @@ "type": "int_const 0", "value": "0" }, - "id": 1201, + "id": 1224, "name": "Literal", "src": "1297:1:4" } ], - "id": 1202, + "id": 1225, "name": "BinaryOperation", "src": "1285:13:4" }, @@ -2015,11 +2015,11 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1198, + "referencedDeclaration": 1221, "type": "uint256", "value": "expires" }, - "id": 1203, + "id": 1226, "name": "Identifier", "src": "1314:7:4" }, @@ -2029,26 +2029,26 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1188, + "referencedDeclaration": 1211, "type": "uint256", "value": "_expires" }, - "id": 1204, + "id": 1227, "name": "Identifier", "src": "1324:8:4" } ], - "id": 1205, + "id": 1228, "name": "Assignment", "src": "1314:18:4" } ], - "id": 1206, + "id": 1229, "name": "ExpressionStatement", "src": "1314:18:4" } ], - "id": 1207, + "id": 1230, "name": "Block", "src": "1300:43:4" }, @@ -2073,11 +2073,11 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1198, + "referencedDeclaration": 1221, "type": "uint256", "value": "expires" }, - "id": 1208, + "id": 1231, "name": "Identifier", "src": "1363:7:4" }, @@ -2102,11 +2102,11 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 2481, + "referencedDeclaration": 2504, "type": "uint256", "value": "now" }, - "id": 1209, + "id": 1232, "name": "Identifier", "src": "1373:3:4" }, @@ -2142,11 +2142,11 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1188, + "referencedDeclaration": 1211, "type": "uint256", "value": "_expires" }, - "id": 1210, + "id": 1233, "name": "Identifier", "src": "1380:8:4" }, @@ -2163,49 +2163,49 @@ "type": "int_const 604800", "value": "1" }, - "id": 1211, + "id": 1234, "name": "Literal", "src": "1391:7:4" } ], - "id": 1212, + "id": 1235, "name": "BinaryOperation", "src": "1380:18:4" } ], - "id": 1213, + "id": 1236, "name": "TupleExpression", "src": "1379:20:4" } ], - "id": 1214, + "id": 1237, "name": "BinaryOperation", "src": "1373:26:4" } ], - "id": 1215, + "id": 1238, "name": "Assignment", "src": "1363:36:4" } ], - "id": 1216, + "id": 1239, "name": "ExpressionStatement", "src": "1363:36:4" } ], - "id": 1217, + "id": 1240, "name": "Block", "src": "1349:61:4" } ], - "id": 1218, + "id": 1241, "name": "IfStatement", "src": "1281:129:4" }, { "attributes": { "assignments": [ - 1220 + 1243 ] }, "children": [ @@ -2213,7 +2213,7 @@ "attributes": { "constant": false, "name": "_txnKey", - "scope": 1241, + "scope": 1264, "stateVariable": false, "storageLocation": "default", "type": "bytes32", @@ -2226,12 +2226,12 @@ "name": "bytes32", "type": "bytes32" }, - "id": 1219, + "id": 1242, "name": "ElementaryTypeName", "src": "1419:7:4" } ], - "id": 1220, + "id": 1243, "name": "VariableDeclaration", "src": "1419:15:4" }, @@ -2265,11 +2265,11 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1516, + "referencedDeclaration": 1539, "type": "function (address,bytes memory) view returns (bytes32)", "value": "getCredentialTxnKey" }, - "id": 1221, + "id": 1244, "name": "Identifier", "src": "1437:19:4" }, @@ -2279,11 +2279,11 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1127, + "referencedDeclaration": 1150, "type": "address", "value": "issuerContract" }, - "id": 1222, + "id": 1245, "name": "Identifier", "src": "1457:14:4" }, @@ -2305,26 +2305,26 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 2479, + "referencedDeclaration": 2502, "type": "msg", "value": "msg" }, - "id": 1223, + "id": 1246, "name": "Identifier", "src": "1473:3:4" } ], - "id": 1224, + "id": 1247, "name": "MemberAccess", "src": "1473:8:4" } ], - "id": 1225, + "id": 1248, "name": "FunctionCall", "src": "1437:45:4" } ], - "id": 1226, + "id": 1249, "name": "VariableDeclarationStatement", "src": "1419:63:4" }, @@ -2368,11 +2368,11 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1299, + "referencedDeclaration": 1322, "type": "function (string memory,uint256,address,bytes32)", "value": "_sendToRecipient" }, - "id": 1227, + "id": 1250, "name": "Identifier", "src": "1492:16:4" }, @@ -2382,11 +2382,11 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1184, + "referencedDeclaration": 1207, "type": "string memory", "value": "_badgeName" }, - "id": 1228, + "id": 1251, "name": "Identifier", "src": "1522:10:4" }, @@ -2396,11 +2396,11 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1198, + "referencedDeclaration": 1221, "type": "uint256", "value": "expires" }, - "id": 1229, + "id": 1252, "name": "Identifier", "src": "1546:7:4" }, @@ -2410,11 +2410,11 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1186, + "referencedDeclaration": 1209, "type": "address", "value": "_recipient" }, - "id": 1230, + "id": 1253, "name": "Identifier", "src": "1567:10:4" }, @@ -2424,21 +2424,21 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1220, + "referencedDeclaration": 1243, "type": "bytes32", "value": "_txnKey" }, - "id": 1231, + "id": 1254, "name": "Identifier", "src": "1591:7:4" } ], - "id": 1232, + "id": 1255, "name": "FunctionCall", "src": "1492:116:4" } ], - "id": 1233, + "id": 1256, "name": "ExpressionStatement", "src": "1492:116:4" }, @@ -2478,11 +2478,11 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1468, + "referencedDeclaration": 1491, "type": "function (bytes32,address,string memory)", "value": "setNewTxn" }, - "id": 1234, + "id": 1257, "name": "Identifier", "src": "1618:9:4" }, @@ -2492,11 +2492,11 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1220, + "referencedDeclaration": 1243, "type": "bytes32", "value": "_txnKey" }, - "id": 1235, + "id": 1258, "name": "Identifier", "src": "1628:7:4" }, @@ -2506,11 +2506,11 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1186, + "referencedDeclaration": 1209, "type": "address", "value": "_recipient" }, - "id": 1236, + "id": 1259, "name": "Identifier", "src": "1637:10:4" }, @@ -2520,31 +2520,31 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1184, + "referencedDeclaration": 1207, "type": "string memory", "value": "_badgeName" }, - "id": 1237, + "id": 1260, "name": "Identifier", "src": "1649:10:4" } ], - "id": 1238, + "id": 1261, "name": "FunctionCall", "src": "1618:42:4" } ], - "id": 1239, + "id": 1262, "name": "ExpressionStatement", "src": "1618:42:4" } ], - "id": 1240, + "id": 1263, "name": "Block", "src": "1249:418:4" } ], - "id": 1241, + "id": 1264, "name": "FunctionDefinition", "src": "1103:564:4" }, @@ -2558,7 +2558,7 @@ ], "name": "_sendToRecipient", "payable": false, - "scope": 1318, + "scope": 1341, "stateMutability": "nonpayable", "superFunction": null, "visibility": "private" @@ -2570,7 +2570,7 @@ "attributes": { "constant": false, "name": "_badgeName", - "scope": 1299, + "scope": 1322, "stateVariable": false, "storageLocation": "default", "type": "string memory", @@ -2583,12 +2583,12 @@ "name": "string", "type": "string storage pointer" }, - "id": 1242, + "id": 1265, "name": "ElementaryTypeName", "src": "1803:6:4" } ], - "id": 1243, + "id": 1266, "name": "VariableDeclaration", "src": "1803:17:4" }, @@ -2596,7 +2596,7 @@ "attributes": { "constant": false, "name": "expires", - "scope": 1299, + "scope": 1322, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -2609,12 +2609,12 @@ "name": "uint", "type": "uint256" }, - "id": 1244, + "id": 1267, "name": "ElementaryTypeName", "src": "1830:4:4" } ], - "id": 1245, + "id": 1268, "name": "VariableDeclaration", "src": "1830:12:4" }, @@ -2622,7 +2622,7 @@ "attributes": { "constant": false, "name": "_recipient", - "scope": 1299, + "scope": 1322, "stateVariable": false, "storageLocation": "default", "type": "address", @@ -2635,12 +2635,12 @@ "name": "address", "type": "address" }, - "id": 1246, + "id": 1269, "name": "ElementaryTypeName", "src": "1852:7:4" } ], - "id": 1247, + "id": 1270, "name": "VariableDeclaration", "src": "1852:18:4" }, @@ -2648,7 +2648,7 @@ "attributes": { "constant": false, "name": "_txnKey", - "scope": 1299, + "scope": 1322, "stateVariable": false, "storageLocation": "default", "type": "bytes32", @@ -2661,17 +2661,17 @@ "name": "bytes32", "type": "bytes32" }, - "id": 1248, + "id": 1271, "name": "ElementaryTypeName", "src": "1880:7:4" } ], - "id": 1249, + "id": 1272, "name": "VariableDeclaration", "src": "1880:15:4" } ], - "id": 1250, + "id": 1273, "name": "ParameterList", "src": "1793:108:4" }, @@ -2682,7 +2682,7 @@ ] }, "children": [], - "id": 1251, + "id": 1274, "name": "ParameterList", "src": "1914:0:4" }, @@ -2691,7 +2691,7 @@ { "attributes": { "assignments": [ - 1253 + 1276 ] }, "children": [ @@ -2699,7 +2699,7 @@ "attributes": { "constant": false, "name": "badge", - "scope": 1299, + "scope": 1322, "stateVariable": false, "storageLocation": "memory", "type": "struct BadgeManager.Badge memory", @@ -2714,12 +2714,12 @@ "referencedDeclaration": 222, "type": "struct BadgeManager.Badge storage pointer" }, - "id": 1252, + "id": 1275, "name": "UserDefinedTypeName", "src": "1924:5:4" } ], - "id": 1253, + "id": 1276, "name": "VariableDeclaration", "src": "1924:18:4" }, @@ -2755,12 +2755,12 @@ "type": "struct BadgeManager.Vault storage ref", "value": "badgeVault" }, - "id": 1254, + "id": 1277, "name": "Identifier", "src": "1945:10:4" } ], - "id": 1255, + "id": 1278, "name": "MemberAccess", "src": "1945:17:4" }, @@ -2794,7 +2794,7 @@ "type": "function (string memory) pure returns (bytes32)", "value": "getBadgeNameHash" }, - "id": 1256, + "id": 1279, "name": "Identifier", "src": "1963:16:4" }, @@ -2804,26 +2804,26 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1243, + "referencedDeclaration": 1266, "type": "string memory", "value": "_badgeName" }, - "id": 1257, + "id": 1280, "name": "Identifier", "src": "1980:10:4" } ], - "id": 1258, + "id": 1281, "name": "FunctionCall", "src": "1963:28:4" } ], - "id": 1259, + "id": 1282, "name": "IndexAccess", "src": "1945:47:4" } ], - "id": 1260, + "id": 1283, "name": "VariableDeclarationStatement", "src": "1924:68:4" }, @@ -2855,11 +2855,11 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 2482, + "referencedDeclaration": 2505, "type": "function (bool) pure", "value": "require" }, - "id": 1261, + "id": 1284, "name": "Identifier", "src": "2002:7:4" }, @@ -2896,16 +2896,16 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1253, + "referencedDeclaration": 1276, "type": "struct BadgeManager.Badge memory", "value": "badge" }, - "id": 1262, + "id": 1285, "name": "Identifier", "src": "2010:5:4" } ], - "id": 1263, + "id": 1286, "name": "MemberAccess", "src": "2010:12:4" }, @@ -2915,33 +2915,33 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1125, + "referencedDeclaration": 1148, "type": "address", "value": "NONE" }, - "id": 1264, + "id": 1287, "name": "Identifier", "src": "2026:4:4" } ], - "id": 1265, + "id": 1288, "name": "BinaryOperation", "src": "2010:20:4" } ], - "id": 1266, + "id": 1289, "name": "FunctionCall", "src": "2002:29:4" } ], - "id": 1267, + "id": 1290, "name": "ExpressionStatement", "src": "2002:29:4" }, { "attributes": { "assignments": [ - 1269 + 1292 ] }, "children": [ @@ -2949,7 +2949,7 @@ "attributes": { "constant": false, "name": "holder", - "scope": 1299, + "scope": 1322, "stateVariable": false, "storageLocation": "default", "type": "contract Holder", @@ -2961,15 +2961,15 @@ "attributes": { "contractScope": null, "name": "Holder", - "referencedDeclaration": 1113, + "referencedDeclaration": 1136, "type": "contract Holder" }, - "id": 1268, + "id": 1291, "name": "UserDefinedTypeName", "src": "2041:6:4" } ], - "id": 1269, + "id": 1292, "name": "VariableDeclaration", "src": "2041:13:4" }, @@ -2999,11 +2999,11 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1113, + "referencedDeclaration": 1136, "type": "type(contract Holder)", "value": "Holder" }, - "id": 1270, + "id": 1293, "name": "Identifier", "src": "2057:6:4" }, @@ -3013,21 +3013,21 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1247, + "referencedDeclaration": 1270, "type": "address", "value": "_recipient" }, - "id": 1271, + "id": 1294, "name": "Identifier", "src": "2064:10:4" } ], - "id": 1272, + "id": 1295, "name": "FunctionCall", "src": "2057:18:4" } ], - "id": 1273, + "id": 1296, "name": "VariableDeclarationStatement", "src": "2041:34:4" }, @@ -3099,16 +3099,16 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1269, + "referencedDeclaration": 1292, "type": "contract Holder", "value": "holder" }, - "id": 1274, + "id": 1297, "name": "Identifier", "src": "2085:6:4" } ], - "id": 1276, + "id": 1299, "name": "MemberAccess", "src": "2085:22:4" }, @@ -3130,16 +3130,16 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1253, + "referencedDeclaration": 1276, "type": "struct BadgeManager.Badge memory", "value": "badge" }, - "id": 1277, + "id": 1300, "name": "Identifier", "src": "2121:5:4" } ], - "id": 1278, + "id": 1301, "name": "MemberAccess", "src": "2121:12:4" }, @@ -3161,16 +3161,16 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1253, + "referencedDeclaration": 1276, "type": "struct BadgeManager.Badge memory", "value": "badge" }, - "id": 1279, + "id": 1302, "name": "Identifier", "src": "2147:5:4" } ], - "id": 1280, + "id": 1303, "name": "MemberAccess", "src": "2147:17:4" }, @@ -3192,16 +3192,16 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1253, + "referencedDeclaration": 1276, "type": "struct BadgeManager.Badge memory", "value": "badge" }, - "id": 1281, + "id": 1304, "name": "Identifier", "src": "2178:5:4" } ], - "id": 1282, + "id": 1305, "name": "MemberAccess", "src": "2178:10:4" }, @@ -3223,16 +3223,16 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1253, + "referencedDeclaration": 1276, "type": "struct BadgeManager.Badge memory", "value": "badge" }, - "id": 1283, + "id": 1306, "name": "Identifier", "src": "2202:5:4" } ], - "id": 1284, + "id": 1307, "name": "MemberAccess", "src": "2202:11:4" }, @@ -3254,16 +3254,16 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1253, + "referencedDeclaration": 1276, "type": "struct BadgeManager.Badge memory", "value": "badge" }, - "id": 1285, + "id": 1308, "name": "Identifier", "src": "2227:5:4" } ], - "id": 1286, + "id": 1309, "name": "MemberAccess", "src": "2227:13:4" }, @@ -3273,11 +3273,11 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1245, + "referencedDeclaration": 1268, "type": "uint256", "value": "expires" }, - "id": 1287, + "id": 1310, "name": "Identifier", "src": "2254:7:4" }, @@ -3287,11 +3287,11 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1247, + "referencedDeclaration": 1270, "type": "address", "value": "_recipient" }, - "id": 1288, + "id": 1311, "name": "Identifier", "src": "2275:10:4" }, @@ -3301,21 +3301,21 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1249, + "referencedDeclaration": 1272, "type": "bytes32", "value": "_txnKey" }, - "id": 1289, + "id": 1312, "name": "Identifier", "src": "2299:7:4" } ], - "id": 1290, + "id": 1313, "name": "FunctionCall", "src": "2085:231:4" } ], - "id": 1291, + "id": 1314, "name": "ExpressionStatement", "src": "2085:231:4" }, @@ -3351,11 +3351,11 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1182, + "referencedDeclaration": 1205, "type": "function (string memory,address)", "value": "CredentialIssued" }, - "id": 1292, + "id": 1315, "name": "Identifier", "src": "2326:16:4" }, @@ -3377,16 +3377,16 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1253, + "referencedDeclaration": 1276, "type": "struct BadgeManager.Badge memory", "value": "badge" }, - "id": 1293, + "id": 1316, "name": "Identifier", "src": "2356:5:4" } ], - "id": 1294, + "id": 1317, "name": "MemberAccess", "src": "2356:10:4" }, @@ -3396,31 +3396,31 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1247, + "referencedDeclaration": 1270, "type": "address", "value": "_recipient" }, - "id": 1295, + "id": 1318, "name": "Identifier", "src": "2380:10:4" } ], - "id": 1296, + "id": 1319, "name": "FunctionCall", "src": "2326:74:4" } ], - "id": 1297, + "id": 1320, "name": "ExpressionStatement", "src": "2326:74:4" } ], - "id": 1298, + "id": 1321, "name": "Block", "src": "1914:493:4" } ], - "id": 1299, + "id": 1322, "name": "FunctionDefinition", "src": "1768:639:4" }, @@ -3434,7 +3434,7 @@ ], "name": "getInfo", "payable": false, - "scope": 1318, + "scope": 1341, "stateMutability": "view", "superFunction": null, "visibility": "public" @@ -3447,7 +3447,7 @@ ] }, "children": [], - "id": 1300, + "id": 1323, "name": "ParameterList", "src": "2461:2:4" }, @@ -3457,7 +3457,7 @@ "attributes": { "constant": false, "name": "_issuer", - "scope": 1317, + "scope": 1340, "stateVariable": false, "storageLocation": "default", "type": "address", @@ -3470,12 +3470,12 @@ "name": "address", "type": "address" }, - "id": 1301, + "id": 1324, "name": "ElementaryTypeName", "src": "2488:7:4" } ], - "id": 1302, + "id": 1325, "name": "VariableDeclaration", "src": "2488:15:4" }, @@ -3483,7 +3483,7 @@ "attributes": { "constant": false, "name": "_contract", - "scope": 1317, + "scope": 1340, "stateVariable": false, "storageLocation": "default", "type": "address", @@ -3496,12 +3496,12 @@ "name": "address", "type": "address" }, - "id": 1303, + "id": 1326, "name": "ElementaryTypeName", "src": "2505:7:4" } ], - "id": 1304, + "id": 1327, "name": "VariableDeclaration", "src": "2505:17:4" }, @@ -3509,7 +3509,7 @@ "attributes": { "constant": false, "name": "_name", - "scope": 1317, + "scope": 1340, "stateVariable": false, "storageLocation": "default", "type": "string memory", @@ -3522,12 +3522,12 @@ "name": "string", "type": "string storage pointer" }, - "id": 1305, + "id": 1328, "name": "ElementaryTypeName", "src": "2524:6:4" } ], - "id": 1306, + "id": 1329, "name": "VariableDeclaration", "src": "2524:12:4" }, @@ -3535,7 +3535,7 @@ "attributes": { "constant": false, "name": "_url", - "scope": 1317, + "scope": 1340, "stateVariable": false, "storageLocation": "default", "type": "string memory", @@ -3548,17 +3548,17 @@ "name": "string", "type": "string storage pointer" }, - "id": 1307, + "id": 1330, "name": "ElementaryTypeName", "src": "2538:6:4" } ], - "id": 1308, + "id": 1331, "name": "VariableDeclaration", "src": "2538:11:4" } ], - "id": 1309, + "id": 1332, "name": "ParameterList", "src": "2487:63:4" }, @@ -3566,7 +3566,7 @@ "children": [ { "attributes": { - "functionReturnParameters": 1309 + "functionReturnParameters": 1332 }, "children": [ { @@ -3590,7 +3590,7 @@ "type": "address", "value": "admin" }, - "id": 1310, + "id": 1333, "name": "Identifier", "src": "2568:5:4" }, @@ -3600,11 +3600,11 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1127, + "referencedDeclaration": 1150, "type": "address", "value": "issuerContract" }, - "id": 1311, + "id": 1334, "name": "Identifier", "src": "2575:14:4" }, @@ -3614,11 +3614,11 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1129, + "referencedDeclaration": 1152, "type": "string storage ref", "value": "name" }, - "id": 1312, + "id": 1335, "name": "Identifier", "src": "2591:4:4" }, @@ -3628,41 +3628,41 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1131, + "referencedDeclaration": 1154, "type": "string storage ref", "value": "url" }, - "id": 1313, + "id": 1336, "name": "Identifier", "src": "2597:3:4" } ], - "id": 1314, + "id": 1337, "name": "TupleExpression", "src": "2567:34:4" } ], - "id": 1315, + "id": 1338, "name": "Return", "src": "2561:40:4" } ], - "id": 1316, + "id": 1339, "name": "Block", "src": "2551:57:4" } ], - "id": 1317, + "id": 1340, "name": "FunctionDefinition", "src": "2445:163:4" } ], - "id": 1318, + "id": 1341, "name": "ContractDefinition", "src": "132:2479:4" } ], - "id": 1319, + "id": 1342, "name": "SourceUnit", "src": "0:2612:4" }, @@ -3672,5 +3672,5 @@ }, "networks": {}, "schemaVersion": "1.0.1", - "updatedAt": "2018-01-14T11:06:54.641Z" + "updatedAt": "2018-01-16T07:16:25.771Z" } \ No newline at end of file diff --git a/build/contracts/Migrations.json b/build/contracts/Migrations.json index 21ee9c2..ce28769 100644 --- a/build/contracts/Migrations.json +++ b/build/contracts/Migrations.json @@ -75,7 +75,7 @@ "absolutePath": "/home/kc1116/Desktop/badgeforce_development/badgeforce/contracts/Migrations.sol", "exportedSymbols": { "Migrations": [ - 1375 + 1398 ] } }, @@ -89,7 +89,7 @@ ".17" ] }, - "id": 1320, + "id": 1343, "name": "PragmaDirective", "src": "0:24:5" }, @@ -105,17 +105,17 @@ "documentation": null, "fullyImplemented": true, "linearizedBaseContracts": [ - 1375 + 1398 ], "name": "Migrations", - "scope": 1376 + "scope": 1399 }, "children": [ { "attributes": { "constant": false, "name": "owner", - "scope": 1375, + "scope": 1398, "stateVariable": true, "storageLocation": "default", "type": "address", @@ -128,12 +128,12 @@ "name": "address", "type": "address" }, - "id": 1321, + "id": 1344, "name": "ElementaryTypeName", "src": "50:7:5" } ], - "id": 1322, + "id": 1345, "name": "VariableDeclaration", "src": "50:20:5" }, @@ -141,7 +141,7 @@ "attributes": { "constant": false, "name": "last_completed_migration", - "scope": 1375, + "scope": 1398, "stateVariable": true, "storageLocation": "default", "type": "uint256", @@ -154,12 +154,12 @@ "name": "uint", "type": "uint256" }, - "id": 1323, + "id": 1346, "name": "ElementaryTypeName", "src": "74:4:5" } ], - "id": 1324, + "id": 1347, "name": "VariableDeclaration", "src": "74:36:5" }, @@ -176,7 +176,7 @@ ] }, "children": [], - "id": 1325, + "id": 1348, "name": "ParameterList", "src": "134:2:5" }, @@ -220,16 +220,16 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 2479, + "referencedDeclaration": 2502, "type": "msg", "value": "msg" }, - "id": 1326, + "id": 1349, "name": "Identifier", "src": "147:3:5" } ], - "id": 1327, + "id": 1350, "name": "MemberAccess", "src": "147:10:5" }, @@ -239,36 +239,36 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1322, + "referencedDeclaration": 1345, "type": "address", "value": "owner" }, - "id": 1328, + "id": 1351, "name": "Identifier", "src": "161:5:5" } ], - "id": 1329, + "id": 1352, "name": "BinaryOperation", "src": "147:19:5" }, { - "id": 1330, + "id": 1353, "name": "PlaceholderStatement", "src": "168:1:5" } ], - "id": 1331, + "id": 1354, "name": "IfStatement", "src": "143:26:5" } ], - "id": 1332, + "id": 1355, "name": "Block", "src": "137:37:5" } ], - "id": 1333, + "id": 1356, "name": "ModifierDefinition", "src": "115:59:5" }, @@ -282,7 +282,7 @@ ], "name": "Migrations", "payable": false, - "scope": 1375, + "scope": 1398, "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" @@ -295,7 +295,7 @@ ] }, "children": [], - "id": 1334, + "id": 1357, "name": "ParameterList", "src": "197:2:5" }, @@ -306,7 +306,7 @@ ] }, "children": [], - "id": 1335, + "id": 1358, "name": "ParameterList", "src": "207:0:5" }, @@ -331,11 +331,11 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1322, + "referencedDeclaration": 1345, "type": "address", "value": "owner" }, - "id": 1336, + "id": 1359, "name": "Identifier", "src": "213:5:5" }, @@ -357,36 +357,36 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 2479, + "referencedDeclaration": 2502, "type": "msg", "value": "msg" }, - "id": 1337, + "id": 1360, "name": "Identifier", "src": "221:3:5" } ], - "id": 1338, + "id": 1361, "name": "MemberAccess", "src": "221:10:5" } ], - "id": 1339, + "id": 1362, "name": "Assignment", "src": "213:18:5" } ], - "id": 1340, + "id": 1363, "name": "ExpressionStatement", "src": "213:18:5" } ], - "id": 1341, + "id": 1364, "name": "Block", "src": "207:29:5" } ], - "id": 1342, + "id": 1365, "name": "FunctionDefinition", "src": "178:58:5" }, @@ -397,7 +397,7 @@ "isConstructor": false, "name": "setCompleted", "payable": false, - "scope": 1375, + "scope": 1398, "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" @@ -409,7 +409,7 @@ "attributes": { "constant": false, "name": "completed", - "scope": 1354, + "scope": 1377, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -422,17 +422,17 @@ "name": "uint", "type": "uint256" }, - "id": 1343, + "id": 1366, "name": "ElementaryTypeName", "src": "262:4:5" } ], - "id": 1344, + "id": 1367, "name": "VariableDeclaration", "src": "262:14:5" } ], - "id": 1345, + "id": 1368, "name": "ParameterList", "src": "261:16:5" }, @@ -443,7 +443,7 @@ ] }, "children": [], - "id": 1348, + "id": 1371, "name": "ParameterList", "src": "296:0:5" }, @@ -460,16 +460,16 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1333, + "referencedDeclaration": 1356, "type": "modifier ()", "value": "restricted" }, - "id": 1346, + "id": 1369, "name": "Identifier", "src": "285:10:5" } ], - "id": 1347, + "id": 1370, "name": "ModifierInvocation", "src": "285:10:5" }, @@ -494,11 +494,11 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1324, + "referencedDeclaration": 1347, "type": "uint256", "value": "last_completed_migration" }, - "id": 1349, + "id": 1372, "name": "Identifier", "src": "302:24:5" }, @@ -508,31 +508,31 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1344, + "referencedDeclaration": 1367, "type": "uint256", "value": "completed" }, - "id": 1350, + "id": 1373, "name": "Identifier", "src": "329:9:5" } ], - "id": 1351, + "id": 1374, "name": "Assignment", "src": "302:36:5" } ], - "id": 1352, + "id": 1375, "name": "ExpressionStatement", "src": "302:36:5" } ], - "id": 1353, + "id": 1376, "name": "Block", "src": "296:47:5" } ], - "id": 1354, + "id": 1377, "name": "FunctionDefinition", "src": "240:103:5" }, @@ -543,7 +543,7 @@ "isConstructor": false, "name": "upgrade", "payable": false, - "scope": 1375, + "scope": 1398, "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" @@ -555,7 +555,7 @@ "attributes": { "constant": false, "name": "new_address", - "scope": 1374, + "scope": 1397, "stateVariable": false, "storageLocation": "default", "type": "address", @@ -568,17 +568,17 @@ "name": "address", "type": "address" }, - "id": 1355, + "id": 1378, "name": "ElementaryTypeName", "src": "364:7:5" } ], - "id": 1356, + "id": 1379, "name": "VariableDeclaration", "src": "364:19:5" } ], - "id": 1357, + "id": 1380, "name": "ParameterList", "src": "363:21:5" }, @@ -589,7 +589,7 @@ ] }, "children": [], - "id": 1360, + "id": 1383, "name": "ParameterList", "src": "403:0:5" }, @@ -606,16 +606,16 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1333, + "referencedDeclaration": 1356, "type": "modifier ()", "value": "restricted" }, - "id": 1358, + "id": 1381, "name": "Identifier", "src": "392:10:5" } ], - "id": 1359, + "id": 1382, "name": "ModifierInvocation", "src": "392:10:5" }, @@ -624,7 +624,7 @@ { "attributes": { "assignments": [ - 1362 + 1385 ] }, "children": [ @@ -632,7 +632,7 @@ "attributes": { "constant": false, "name": "upgraded", - "scope": 1374, + "scope": 1397, "stateVariable": false, "storageLocation": "default", "type": "contract Migrations", @@ -644,15 +644,15 @@ "attributes": { "contractScope": null, "name": "Migrations", - "referencedDeclaration": 1375, + "referencedDeclaration": 1398, "type": "contract Migrations" }, - "id": 1361, + "id": 1384, "name": "UserDefinedTypeName", "src": "409:10:5" } ], - "id": 1362, + "id": 1385, "name": "VariableDeclaration", "src": "409:19:5" }, @@ -682,11 +682,11 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1375, + "referencedDeclaration": 1398, "type": "type(contract Migrations)", "value": "Migrations" }, - "id": 1363, + "id": 1386, "name": "Identifier", "src": "431:10:5" }, @@ -696,21 +696,21 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1356, + "referencedDeclaration": 1379, "type": "address", "value": "new_address" }, - "id": 1364, + "id": 1387, "name": "Identifier", "src": "442:11:5" } ], - "id": 1365, + "id": 1388, "name": "FunctionCall", "src": "431:23:5" } ], - "id": 1366, + "id": 1389, "name": "VariableDeclarationStatement", "src": "409:45:5" }, @@ -744,7 +744,7 @@ "isPure": false, "lValueRequested": false, "member_name": "setCompleted", - "referencedDeclaration": 1354, + "referencedDeclaration": 1377, "type": "function (uint256) external" }, "children": [ @@ -754,16 +754,16 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1362, + "referencedDeclaration": 1385, "type": "contract Migrations", "value": "upgraded" }, - "id": 1367, + "id": 1390, "name": "Identifier", "src": "460:8:5" } ], - "id": 1369, + "id": 1392, "name": "MemberAccess", "src": "460:21:5" }, @@ -773,41 +773,41 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1324, + "referencedDeclaration": 1347, "type": "uint256", "value": "last_completed_migration" }, - "id": 1370, + "id": 1393, "name": "Identifier", "src": "482:24:5" } ], - "id": 1371, + "id": 1394, "name": "FunctionCall", "src": "460:47:5" } ], - "id": 1372, + "id": 1395, "name": "ExpressionStatement", "src": "460:47:5" } ], - "id": 1373, + "id": 1396, "name": "Block", "src": "403:109:5" } ], - "id": 1374, + "id": 1397, "name": "FunctionDefinition", "src": "347:165:5" } ], - "id": 1375, + "id": 1398, "name": "ContractDefinition", "src": "26:488:5" } ], - "id": 1376, + "id": 1399, "name": "SourceUnit", "src": "0:515:5" }, @@ -817,5 +817,5 @@ }, "networks": {}, "schemaVersion": "1.0.1", - "updatedAt": "2018-01-14T11:06:54.642Z" + "updatedAt": "2018-01-16T07:16:25.772Z" } \ No newline at end of file diff --git a/build/contracts/SafeMath.json b/build/contracts/SafeMath.json index f2b25f9..bbc4954 100644 --- a/build/contracts/SafeMath.json +++ b/build/contracts/SafeMath.json @@ -12,7 +12,7 @@ "absolutePath": "zeppelin-solidity/contracts/math/SafeMath.sol", "exportedSymbols": { "SafeMath": [ - 1974 + 1997 ] } }, @@ -26,7 +26,7 @@ ".18" ] }, - "id": 1878, + "id": 1901, "name": "PragmaDirective", "src": "0:24:10" }, @@ -42,10 +42,10 @@ "documentation": "@title SafeMath\n@dev Math operations with safety checks that throw on error", "fullyImplemented": true, "linearizedBaseContracts": [ - 1974 + 1997 ], "name": "SafeMath", - "scope": 1975 + "scope": 1998 }, "children": [ { @@ -58,7 +58,7 @@ ], "name": "mul", "payable": false, - "scope": 1974, + "scope": 1997, "stateMutability": "pure", "superFunction": null, "visibility": "internal" @@ -70,7 +70,7 @@ "attributes": { "constant": false, "name": "a", - "scope": 1911, + "scope": 1934, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -83,12 +83,12 @@ "name": "uint256", "type": "uint256" }, - "id": 1879, + "id": 1902, "name": "ElementaryTypeName", "src": "151:7:10" } ], - "id": 1880, + "id": 1903, "name": "VariableDeclaration", "src": "151:9:10" }, @@ -96,7 +96,7 @@ "attributes": { "constant": false, "name": "b", - "scope": 1911, + "scope": 1934, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -109,17 +109,17 @@ "name": "uint256", "type": "uint256" }, - "id": 1881, + "id": 1904, "name": "ElementaryTypeName", "src": "162:7:10" } ], - "id": 1882, + "id": 1905, "name": "VariableDeclaration", "src": "162:9:10" } ], - "id": 1883, + "id": 1906, "name": "ParameterList", "src": "150:22:10" }, @@ -129,7 +129,7 @@ "attributes": { "constant": false, "name": "", - "scope": 1911, + "scope": 1934, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -142,17 +142,17 @@ "name": "uint256", "type": "uint256" }, - "id": 1884, + "id": 1907, "name": "ElementaryTypeName", "src": "196:7:10" } ], - "id": 1885, + "id": 1908, "name": "VariableDeclaration", "src": "196:7:10" } ], - "id": 1886, + "id": 1909, "name": "ParameterList", "src": "195:9:10" }, @@ -184,11 +184,11 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1880, + "referencedDeclaration": 1903, "type": "uint256", "value": "a" }, - "id": 1887, + "id": 1910, "name": "Identifier", "src": "215:1:10" }, @@ -205,12 +205,12 @@ "type": "int_const 0", "value": "0" }, - "id": 1888, + "id": 1911, "name": "Literal", "src": "220:1:10" } ], - "id": 1889, + "id": 1912, "name": "BinaryOperation", "src": "215:6:10" }, @@ -218,7 +218,7 @@ "children": [ { "attributes": { - "functionReturnParameters": 1886 + "functionReturnParameters": 1909 }, "children": [ { @@ -234,29 +234,29 @@ "type": "int_const 0", "value": "0" }, - "id": 1890, + "id": 1913, "name": "Literal", "src": "238:1:10" } ], - "id": 1891, + "id": 1914, "name": "Return", "src": "231:8:10" } ], - "id": 1892, + "id": 1915, "name": "Block", "src": "223:23:10" } ], - "id": 1893, + "id": 1916, "name": "IfStatement", "src": "211:35:10" }, { "attributes": { "assignments": [ - 1895 + 1918 ] }, "children": [ @@ -264,7 +264,7 @@ "attributes": { "constant": false, "name": "c", - "scope": 1911, + "scope": 1934, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -277,12 +277,12 @@ "name": "uint256", "type": "uint256" }, - "id": 1894, + "id": 1917, "name": "ElementaryTypeName", "src": "251:7:10" } ], - "id": 1895, + "id": 1918, "name": "VariableDeclaration", "src": "251:9:10" }, @@ -307,11 +307,11 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1880, + "referencedDeclaration": 1903, "type": "uint256", "value": "a" }, - "id": 1896, + "id": 1919, "name": "Identifier", "src": "263:1:10" }, @@ -321,21 +321,21 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1882, + "referencedDeclaration": 1905, "type": "uint256", "value": "b" }, - "id": 1897, + "id": 1920, "name": "Identifier", "src": "267:1:10" } ], - "id": 1898, + "id": 1921, "name": "BinaryOperation", "src": "263:5:10" } ], - "id": 1899, + "id": 1922, "name": "VariableDeclarationStatement", "src": "251:17:10" }, @@ -367,11 +367,11 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 2470, + "referencedDeclaration": 2493, "type": "function (bool) pure", "value": "assert" }, - "id": 1900, + "id": 1923, "name": "Identifier", "src": "274:6:10" }, @@ -411,11 +411,11 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1895, + "referencedDeclaration": 1918, "type": "uint256", "value": "c" }, - "id": 1901, + "id": 1924, "name": "Identifier", "src": "281:1:10" }, @@ -425,16 +425,16 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1880, + "referencedDeclaration": 1903, "type": "uint256", "value": "a" }, - "id": 1902, + "id": 1925, "name": "Identifier", "src": "285:1:10" } ], - "id": 1903, + "id": 1926, "name": "BinaryOperation", "src": "281:5:10" }, @@ -444,32 +444,32 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1882, + "referencedDeclaration": 1905, "type": "uint256", "value": "b" }, - "id": 1904, + "id": 1927, "name": "Identifier", "src": "290:1:10" } ], - "id": 1905, + "id": 1928, "name": "BinaryOperation", "src": "281:10:10" } ], - "id": 1906, + "id": 1929, "name": "FunctionCall", "src": "274:18:10" } ], - "id": 1907, + "id": 1930, "name": "ExpressionStatement", "src": "274:18:10" }, { "attributes": { - "functionReturnParameters": 1886 + "functionReturnParameters": 1909 }, "children": [ { @@ -478,26 +478,26 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1895, + "referencedDeclaration": 1918, "type": "uint256", "value": "c" }, - "id": 1908, + "id": 1931, "name": "Identifier", "src": "305:1:10" } ], - "id": 1909, + "id": 1932, "name": "Return", "src": "298:8:10" } ], - "id": 1910, + "id": 1933, "name": "Block", "src": "205:106:10" } ], - "id": 1911, + "id": 1934, "name": "FunctionDefinition", "src": "138:173:10" }, @@ -511,7 +511,7 @@ ], "name": "div", "payable": false, - "scope": 1974, + "scope": 1997, "stateMutability": "pure", "superFunction": null, "visibility": "internal" @@ -523,7 +523,7 @@ "attributes": { "constant": false, "name": "a", - "scope": 1929, + "scope": 1952, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -536,12 +536,12 @@ "name": "uint256", "type": "uint256" }, - "id": 1912, + "id": 1935, "name": "ElementaryTypeName", "src": "328:7:10" } ], - "id": 1913, + "id": 1936, "name": "VariableDeclaration", "src": "328:9:10" }, @@ -549,7 +549,7 @@ "attributes": { "constant": false, "name": "b", - "scope": 1929, + "scope": 1952, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -562,17 +562,17 @@ "name": "uint256", "type": "uint256" }, - "id": 1914, + "id": 1937, "name": "ElementaryTypeName", "src": "339:7:10" } ], - "id": 1915, + "id": 1938, "name": "VariableDeclaration", "src": "339:9:10" } ], - "id": 1916, + "id": 1939, "name": "ParameterList", "src": "327:22:10" }, @@ -582,7 +582,7 @@ "attributes": { "constant": false, "name": "", - "scope": 1929, + "scope": 1952, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -595,17 +595,17 @@ "name": "uint256", "type": "uint256" }, - "id": 1917, + "id": 1940, "name": "ElementaryTypeName", "src": "373:7:10" } ], - "id": 1918, + "id": 1941, "name": "VariableDeclaration", "src": "373:7:10" } ], - "id": 1919, + "id": 1942, "name": "ParameterList", "src": "372:9:10" }, @@ -614,7 +614,7 @@ { "attributes": { "assignments": [ - 1921 + 1944 ] }, "children": [ @@ -622,7 +622,7 @@ "attributes": { "constant": false, "name": "c", - "scope": 1929, + "scope": 1952, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -635,12 +635,12 @@ "name": "uint256", "type": "uint256" }, - "id": 1920, + "id": 1943, "name": "ElementaryTypeName", "src": "462:7:10" } ], - "id": 1921, + "id": 1944, "name": "VariableDeclaration", "src": "462:9:10" }, @@ -665,11 +665,11 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1913, + "referencedDeclaration": 1936, "type": "uint256", "value": "a" }, - "id": 1922, + "id": 1945, "name": "Identifier", "src": "474:1:10" }, @@ -679,27 +679,27 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1915, + "referencedDeclaration": 1938, "type": "uint256", "value": "b" }, - "id": 1923, + "id": 1946, "name": "Identifier", "src": "478:1:10" } ], - "id": 1924, + "id": 1947, "name": "BinaryOperation", "src": "474:5:10" } ], - "id": 1925, + "id": 1948, "name": "VariableDeclarationStatement", "src": "462:17:10" }, { "attributes": { - "functionReturnParameters": 1919 + "functionReturnParameters": 1942 }, "children": [ { @@ -708,26 +708,26 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1921, + "referencedDeclaration": 1944, "type": "uint256", "value": "c" }, - "id": 1926, + "id": 1949, "name": "Identifier", "src": "574:1:10" } ], - "id": 1927, + "id": 1950, "name": "Return", "src": "567:8:10" } ], - "id": 1928, + "id": 1951, "name": "Block", "src": "382:198:10" } ], - "id": 1929, + "id": 1952, "name": "FunctionDefinition", "src": "315:265:10" }, @@ -741,7 +741,7 @@ ], "name": "sub", "payable": false, - "scope": 1974, + "scope": 1997, "stateMutability": "pure", "superFunction": null, "visibility": "internal" @@ -753,7 +753,7 @@ "attributes": { "constant": false, "name": "a", - "scope": 1949, + "scope": 1972, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -766,12 +766,12 @@ "name": "uint256", "type": "uint256" }, - "id": 1930, + "id": 1953, "name": "ElementaryTypeName", "src": "597:7:10" } ], - "id": 1931, + "id": 1954, "name": "VariableDeclaration", "src": "597:9:10" }, @@ -779,7 +779,7 @@ "attributes": { "constant": false, "name": "b", - "scope": 1949, + "scope": 1972, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -792,17 +792,17 @@ "name": "uint256", "type": "uint256" }, - "id": 1932, + "id": 1955, "name": "ElementaryTypeName", "src": "608:7:10" } ], - "id": 1933, + "id": 1956, "name": "VariableDeclaration", "src": "608:9:10" } ], - "id": 1934, + "id": 1957, "name": "ParameterList", "src": "596:22:10" }, @@ -812,7 +812,7 @@ "attributes": { "constant": false, "name": "", - "scope": 1949, + "scope": 1972, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -825,17 +825,17 @@ "name": "uint256", "type": "uint256" }, - "id": 1935, + "id": 1958, "name": "ElementaryTypeName", "src": "642:7:10" } ], - "id": 1936, + "id": 1959, "name": "VariableDeclaration", "src": "642:7:10" } ], - "id": 1937, + "id": 1960, "name": "ParameterList", "src": "641:9:10" }, @@ -869,11 +869,11 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 2470, + "referencedDeclaration": 2493, "type": "function (bool) pure", "value": "assert" }, - "id": 1938, + "id": 1961, "name": "Identifier", "src": "657:6:10" }, @@ -898,11 +898,11 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1933, + "referencedDeclaration": 1956, "type": "uint256", "value": "b" }, - "id": 1939, + "id": 1962, "name": "Identifier", "src": "664:1:10" }, @@ -912,32 +912,32 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1931, + "referencedDeclaration": 1954, "type": "uint256", "value": "a" }, - "id": 1940, + "id": 1963, "name": "Identifier", "src": "669:1:10" } ], - "id": 1941, + "id": 1964, "name": "BinaryOperation", "src": "664:6:10" } ], - "id": 1942, + "id": 1965, "name": "FunctionCall", "src": "657:14:10" } ], - "id": 1943, + "id": 1966, "name": "ExpressionStatement", "src": "657:14:10" }, { "attributes": { - "functionReturnParameters": 1937 + "functionReturnParameters": 1960 }, "children": [ { @@ -961,11 +961,11 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1931, + "referencedDeclaration": 1954, "type": "uint256", "value": "a" }, - "id": 1944, + "id": 1967, "name": "Identifier", "src": "684:1:10" }, @@ -975,31 +975,31 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1933, + "referencedDeclaration": 1956, "type": "uint256", "value": "b" }, - "id": 1945, + "id": 1968, "name": "Identifier", "src": "688:1:10" } ], - "id": 1946, + "id": 1969, "name": "BinaryOperation", "src": "684:5:10" } ], - "id": 1947, + "id": 1970, "name": "Return", "src": "677:12:10" } ], - "id": 1948, + "id": 1971, "name": "Block", "src": "651:43:10" } ], - "id": 1949, + "id": 1972, "name": "FunctionDefinition", "src": "584:110:10" }, @@ -1013,7 +1013,7 @@ ], "name": "add", "payable": false, - "scope": 1974, + "scope": 1997, "stateMutability": "pure", "superFunction": null, "visibility": "internal" @@ -1025,7 +1025,7 @@ "attributes": { "constant": false, "name": "a", - "scope": 1973, + "scope": 1996, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -1038,12 +1038,12 @@ "name": "uint256", "type": "uint256" }, - "id": 1950, + "id": 1973, "name": "ElementaryTypeName", "src": "711:7:10" } ], - "id": 1951, + "id": 1974, "name": "VariableDeclaration", "src": "711:9:10" }, @@ -1051,7 +1051,7 @@ "attributes": { "constant": false, "name": "b", - "scope": 1973, + "scope": 1996, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -1064,17 +1064,17 @@ "name": "uint256", "type": "uint256" }, - "id": 1952, + "id": 1975, "name": "ElementaryTypeName", "src": "722:7:10" } ], - "id": 1953, + "id": 1976, "name": "VariableDeclaration", "src": "722:9:10" } ], - "id": 1954, + "id": 1977, "name": "ParameterList", "src": "710:22:10" }, @@ -1084,7 +1084,7 @@ "attributes": { "constant": false, "name": "", - "scope": 1973, + "scope": 1996, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -1097,17 +1097,17 @@ "name": "uint256", "type": "uint256" }, - "id": 1955, + "id": 1978, "name": "ElementaryTypeName", "src": "756:7:10" } ], - "id": 1956, + "id": 1979, "name": "VariableDeclaration", "src": "756:7:10" } ], - "id": 1957, + "id": 1980, "name": "ParameterList", "src": "755:9:10" }, @@ -1116,7 +1116,7 @@ { "attributes": { "assignments": [ - 1959 + 1982 ] }, "children": [ @@ -1124,7 +1124,7 @@ "attributes": { "constant": false, "name": "c", - "scope": 1973, + "scope": 1996, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -1137,12 +1137,12 @@ "name": "uint256", "type": "uint256" }, - "id": 1958, + "id": 1981, "name": "ElementaryTypeName", "src": "771:7:10" } ], - "id": 1959, + "id": 1982, "name": "VariableDeclaration", "src": "771:9:10" }, @@ -1167,11 +1167,11 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1951, + "referencedDeclaration": 1974, "type": "uint256", "value": "a" }, - "id": 1960, + "id": 1983, "name": "Identifier", "src": "783:1:10" }, @@ -1181,21 +1181,21 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1953, + "referencedDeclaration": 1976, "type": "uint256", "value": "b" }, - "id": 1961, + "id": 1984, "name": "Identifier", "src": "787:1:10" } ], - "id": 1962, + "id": 1985, "name": "BinaryOperation", "src": "783:5:10" } ], - "id": 1963, + "id": 1986, "name": "VariableDeclarationStatement", "src": "771:17:10" }, @@ -1227,11 +1227,11 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 2470, + "referencedDeclaration": 2493, "type": "function (bool) pure", "value": "assert" }, - "id": 1964, + "id": 1987, "name": "Identifier", "src": "794:6:10" }, @@ -1256,11 +1256,11 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1959, + "referencedDeclaration": 1982, "type": "uint256", "value": "c" }, - "id": 1965, + "id": 1988, "name": "Identifier", "src": "801:1:10" }, @@ -1270,32 +1270,32 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1951, + "referencedDeclaration": 1974, "type": "uint256", "value": "a" }, - "id": 1966, + "id": 1989, "name": "Identifier", "src": "806:1:10" } ], - "id": 1967, + "id": 1990, "name": "BinaryOperation", "src": "801:6:10" } ], - "id": 1968, + "id": 1991, "name": "FunctionCall", "src": "794:14:10" } ], - "id": 1969, + "id": 1992, "name": "ExpressionStatement", "src": "794:14:10" }, { "attributes": { - "functionReturnParameters": 1957 + "functionReturnParameters": 1980 }, "children": [ { @@ -1304,36 +1304,36 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1959, + "referencedDeclaration": 1982, "type": "uint256", "value": "c" }, - "id": 1970, + "id": 1993, "name": "Identifier", "src": "821:1:10" } ], - "id": 1971, + "id": 1994, "name": "Return", "src": "814:8:10" } ], - "id": 1972, + "id": 1995, "name": "Block", "src": "765:62:10" } ], - "id": 1973, + "id": 1996, "name": "FunctionDefinition", "src": "698:129:10" } ], - "id": 1974, + "id": 1997, "name": "ContractDefinition", "src": "117:712:10" } ], - "id": 1975, + "id": 1998, "name": "SourceUnit", "src": "0:830:10" }, @@ -1343,5 +1343,5 @@ }, "networks": {}, "schemaVersion": "1.0.1", - "updatedAt": "2018-01-14T11:06:54.645Z" + "updatedAt": "2018-01-16T07:16:25.775Z" } \ No newline at end of file diff --git a/build/contracts/StandardToken.json b/build/contracts/StandardToken.json index a8d75ca..421a81d 100644 --- a/build/contracts/StandardToken.json +++ b/build/contracts/StandardToken.json @@ -232,7 +232,7 @@ "absolutePath": "zeppelin-solidity/contracts/token/StandardToken.sol", "exportedSymbols": { "StandardToken": [ - 2467 + 2490 ] } }, @@ -246,58 +246,58 @@ ".18" ] }, - "id": 2223, + "id": 2246, "name": "PragmaDirective", "src": "0:24:16" }, { "attributes": { - "SourceUnit": 2061, + "SourceUnit": 2084, "absolutePath": "zeppelin-solidity/contracts/token/BasicToken.sol", "file": "./BasicToken.sol", - "scope": 2468, + "scope": 2491, "symbolAliases": [ null ], "unitAlias": "" }, - "id": 2224, + "id": 2247, "name": "ImportDirective", "src": "27:26:16" }, { "attributes": { - "SourceUnit": 2193, + "SourceUnit": 2216, "absolutePath": "zeppelin-solidity/contracts/token/ERC20.sol", "file": "./ERC20.sol", - "scope": 2468, + "scope": 2491, "symbolAliases": [ null ], "unitAlias": "" }, - "id": 2225, + "id": 2248, "name": "ImportDirective", "src": "54:21:16" }, { "attributes": { "contractDependencies": [ - 2060, - 2192, - 2221 + 2083, + 2215, + 2244 ], "contractKind": "contract", "documentation": "@title Standard ERC20 token\n * @dev Implementation of the basic standard token.\n@dev https://github.com/ethereum/EIPs/issues/20\n@dev Based on code by FirstBlood: https://github.com/Firstbloodio/token/blob/master/smart_contract/FirstBloodToken.sol", "fullyImplemented": true, "linearizedBaseContracts": [ - 2467, - 2060, - 2192, - 2221 + 2490, + 2083, + 2215, + 2244 ], "name": "StandardToken", - "scope": 2468 + "scope": 2491 }, "children": [ { @@ -311,15 +311,15 @@ "attributes": { "contractScope": null, "name": "ERC20", - "referencedDeclaration": 2192, + "referencedDeclaration": 2215, "type": "contract ERC20" }, - "id": 2226, + "id": 2249, "name": "UserDefinedTypeName", "src": "371:5:16" } ], - "id": 2227, + "id": 2250, "name": "InheritanceSpecifier", "src": "371:5:16" }, @@ -334,15 +334,15 @@ "attributes": { "contractScope": null, "name": "BasicToken", - "referencedDeclaration": 2060, + "referencedDeclaration": 2083, "type": "contract BasicToken" }, - "id": 2228, + "id": 2251, "name": "UserDefinedTypeName", "src": "378:10:16" } ], - "id": 2229, + "id": 2252, "name": "InheritanceSpecifier", "src": "378:10:16" }, @@ -350,7 +350,7 @@ "attributes": { "constant": false, "name": "allowed", - "scope": 2467, + "scope": 2490, "stateVariable": true, "storageLocation": "default", "type": "mapping(address => mapping(address => uint256))", @@ -368,7 +368,7 @@ "name": "address", "type": "address" }, - "id": 2230, + "id": 2253, "name": "ElementaryTypeName", "src": "403:7:16" }, @@ -382,7 +382,7 @@ "name": "address", "type": "address" }, - "id": 2231, + "id": 2254, "name": "ElementaryTypeName", "src": "423:7:16" }, @@ -391,22 +391,22 @@ "name": "uint256", "type": "uint256" }, - "id": 2232, + "id": 2255, "name": "ElementaryTypeName", "src": "434:7:16" } ], - "id": 2233, + "id": 2256, "name": "Mapping", "src": "414:28:16" } ], - "id": 2234, + "id": 2257, "name": "Mapping", "src": "394:49:16" } ], - "id": 2235, + "id": 2258, "name": "VariableDeclaration", "src": "394:66:16" }, @@ -420,9 +420,9 @@ ], "name": "transferFrom", "payable": false, - "scope": 2467, + "scope": 2490, "stateMutability": "nonpayable", - "superFunction": 2174, + "superFunction": 2197, "visibility": "public" }, "children": [ @@ -432,7 +432,7 @@ "attributes": { "constant": false, "name": "_from", - "scope": 2321, + "scope": 2344, "stateVariable": false, "storageLocation": "default", "type": "address", @@ -445,12 +445,12 @@ "name": "address", "type": "address" }, - "id": 2236, + "id": 2259, "name": "ElementaryTypeName", "src": "759:7:16" } ], - "id": 2237, + "id": 2260, "name": "VariableDeclaration", "src": "759:13:16" }, @@ -458,7 +458,7 @@ "attributes": { "constant": false, "name": "_to", - "scope": 2321, + "scope": 2344, "stateVariable": false, "storageLocation": "default", "type": "address", @@ -471,12 +471,12 @@ "name": "address", "type": "address" }, - "id": 2238, + "id": 2261, "name": "ElementaryTypeName", "src": "774:7:16" } ], - "id": 2239, + "id": 2262, "name": "VariableDeclaration", "src": "774:11:16" }, @@ -484,7 +484,7 @@ "attributes": { "constant": false, "name": "_value", - "scope": 2321, + "scope": 2344, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -497,17 +497,17 @@ "name": "uint256", "type": "uint256" }, - "id": 2240, + "id": 2263, "name": "ElementaryTypeName", "src": "787:7:16" } ], - "id": 2241, + "id": 2264, "name": "VariableDeclaration", "src": "787:14:16" } ], - "id": 2242, + "id": 2265, "name": "ParameterList", "src": "758:44:16" }, @@ -517,7 +517,7 @@ "attributes": { "constant": false, "name": "", - "scope": 2321, + "scope": 2344, "stateVariable": false, "storageLocation": "default", "type": "bool", @@ -530,17 +530,17 @@ "name": "bool", "type": "bool" }, - "id": 2243, + "id": 2266, "name": "ElementaryTypeName", "src": "819:4:16" } ], - "id": 2244, + "id": 2267, "name": "VariableDeclaration", "src": "819:4:16" } ], - "id": 2245, + "id": 2268, "name": "ParameterList", "src": "818:6:16" }, @@ -574,11 +574,11 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 2482, + "referencedDeclaration": 2505, "type": "function (bool) pure", "value": "require" }, - "id": 2246, + "id": 2269, "name": "Identifier", "src": "831:7:16" }, @@ -603,11 +603,11 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 2239, + "referencedDeclaration": 2262, "type": "address", "value": "_to" }, - "id": 2247, + "id": 2270, "name": "Identifier", "src": "839:3:16" }, @@ -641,7 +641,7 @@ "type": "type(address)", "value": "address" }, - "id": 2248, + "id": 2271, "name": "ElementaryTypeNameExpression", "src": "846:7:16" }, @@ -658,27 +658,27 @@ "type": "int_const 0", "value": "0" }, - "id": 2249, + "id": 2272, "name": "Literal", "src": "854:1:16" } ], - "id": 2250, + "id": 2273, "name": "FunctionCall", "src": "846:10:16" } ], - "id": 2251, + "id": 2274, "name": "BinaryOperation", "src": "839:17:16" } ], - "id": 2252, + "id": 2275, "name": "FunctionCall", "src": "831:26:16" } ], - "id": 2253, + "id": 2276, "name": "ExpressionStatement", "src": "831:26:16" }, @@ -710,11 +710,11 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 2482, + "referencedDeclaration": 2505, "type": "function (bool) pure", "value": "require" }, - "id": 2254, + "id": 2277, "name": "Identifier", "src": "863:7:16" }, @@ -739,11 +739,11 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 2241, + "referencedDeclaration": 2264, "type": "uint256", "value": "_value" }, - "id": 2255, + "id": 2278, "name": "Identifier", "src": "871:6:16" }, @@ -763,11 +763,11 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1987, + "referencedDeclaration": 2010, "type": "mapping(address => uint256)", "value": "balances" }, - "id": 2256, + "id": 2279, "name": "Identifier", "src": "881:8:16" }, @@ -777,31 +777,31 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 2237, + "referencedDeclaration": 2260, "type": "address", "value": "_from" }, - "id": 2257, + "id": 2280, "name": "Identifier", "src": "890:5:16" } ], - "id": 2258, + "id": 2281, "name": "IndexAccess", "src": "881:15:16" } ], - "id": 2259, + "id": 2282, "name": "BinaryOperation", "src": "871:25:16" } ], - "id": 2260, + "id": 2283, "name": "FunctionCall", "src": "863:34:16" } ], - "id": 2261, + "id": 2284, "name": "ExpressionStatement", "src": "863:34:16" }, @@ -833,11 +833,11 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 2482, + "referencedDeclaration": 2505, "type": "function (bool) pure", "value": "require" }, - "id": 2262, + "id": 2285, "name": "Identifier", "src": "903:7:16" }, @@ -862,11 +862,11 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 2241, + "referencedDeclaration": 2264, "type": "uint256", "value": "_value" }, - "id": 2263, + "id": 2286, "name": "Identifier", "src": "911:6:16" }, @@ -896,11 +896,11 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 2235, + "referencedDeclaration": 2258, "type": "mapping(address => mapping(address => uint256))", "value": "allowed" }, - "id": 2264, + "id": 2287, "name": "Identifier", "src": "921:7:16" }, @@ -910,16 +910,16 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 2237, + "referencedDeclaration": 2260, "type": "address", "value": "_from" }, - "id": 2265, + "id": 2288, "name": "Identifier", "src": "929:5:16" } ], - "id": 2266, + "id": 2289, "name": "IndexAccess", "src": "921:14:16" }, @@ -941,36 +941,36 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 2479, + "referencedDeclaration": 2502, "type": "msg", "value": "msg" }, - "id": 2267, + "id": 2290, "name": "Identifier", "src": "936:3:16" } ], - "id": 2268, + "id": 2291, "name": "MemberAccess", "src": "936:10:16" } ], - "id": 2269, + "id": 2292, "name": "IndexAccess", "src": "921:26:16" } ], - "id": 2270, + "id": 2293, "name": "BinaryOperation", "src": "911:36:16" } ], - "id": 2271, + "id": 2294, "name": "FunctionCall", "src": "903:45:16" } ], - "id": 2272, + "id": 2295, "name": "ExpressionStatement", "src": "903:45:16" }, @@ -1003,11 +1003,11 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1987, + "referencedDeclaration": 2010, "type": "mapping(address => uint256)", "value": "balances" }, - "id": 2273, + "id": 2296, "name": "Identifier", "src": "955:8:16" }, @@ -1017,16 +1017,16 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 2237, + "referencedDeclaration": 2260, "type": "address", "value": "_from" }, - "id": 2274, + "id": 2297, "name": "Identifier", "src": "964:5:16" } ], - "id": 2275, + "id": 2298, "name": "IndexAccess", "src": "955:15:16" }, @@ -1058,7 +1058,7 @@ "isPure": false, "lValueRequested": false, "member_name": "sub", - "referencedDeclaration": 1949, + "referencedDeclaration": 1972, "type": "function (uint256,uint256) pure returns (uint256)" }, "children": [ @@ -1078,11 +1078,11 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1987, + "referencedDeclaration": 2010, "type": "mapping(address => uint256)", "value": "balances" }, - "id": 2276, + "id": 2299, "name": "Identifier", "src": "973:8:16" }, @@ -1092,21 +1092,21 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 2237, + "referencedDeclaration": 2260, "type": "address", "value": "_from" }, - "id": 2277, + "id": 2300, "name": "Identifier", "src": "982:5:16" } ], - "id": 2278, + "id": 2301, "name": "IndexAccess", "src": "973:15:16" } ], - "id": 2279, + "id": 2302, "name": "MemberAccess", "src": "973:19:16" }, @@ -1116,26 +1116,26 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 2241, + "referencedDeclaration": 2264, "type": "uint256", "value": "_value" }, - "id": 2280, + "id": 2303, "name": "Identifier", "src": "993:6:16" } ], - "id": 2281, + "id": 2304, "name": "FunctionCall", "src": "973:27:16" } ], - "id": 2282, + "id": 2305, "name": "Assignment", "src": "955:45:16" } ], - "id": 2283, + "id": 2306, "name": "ExpressionStatement", "src": "955:45:16" }, @@ -1168,11 +1168,11 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1987, + "referencedDeclaration": 2010, "type": "mapping(address => uint256)", "value": "balances" }, - "id": 2284, + "id": 2307, "name": "Identifier", "src": "1006:8:16" }, @@ -1182,16 +1182,16 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 2239, + "referencedDeclaration": 2262, "type": "address", "value": "_to" }, - "id": 2285, + "id": 2308, "name": "Identifier", "src": "1015:3:16" } ], - "id": 2286, + "id": 2309, "name": "IndexAccess", "src": "1006:13:16" }, @@ -1223,7 +1223,7 @@ "isPure": false, "lValueRequested": false, "member_name": "add", - "referencedDeclaration": 1973, + "referencedDeclaration": 1996, "type": "function (uint256,uint256) pure returns (uint256)" }, "children": [ @@ -1243,11 +1243,11 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1987, + "referencedDeclaration": 2010, "type": "mapping(address => uint256)", "value": "balances" }, - "id": 2287, + "id": 2310, "name": "Identifier", "src": "1022:8:16" }, @@ -1257,21 +1257,21 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 2239, + "referencedDeclaration": 2262, "type": "address", "value": "_to" }, - "id": 2288, + "id": 2311, "name": "Identifier", "src": "1031:3:16" } ], - "id": 2289, + "id": 2312, "name": "IndexAccess", "src": "1022:13:16" } ], - "id": 2290, + "id": 2313, "name": "MemberAccess", "src": "1022:17:16" }, @@ -1281,26 +1281,26 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 2241, + "referencedDeclaration": 2264, "type": "uint256", "value": "_value" }, - "id": 2291, + "id": 2314, "name": "Identifier", "src": "1040:6:16" } ], - "id": 2292, + "id": 2315, "name": "FunctionCall", "src": "1022:25:16" } ], - "id": 2293, + "id": 2316, "name": "Assignment", "src": "1006:41:16" } ], - "id": 2294, + "id": 2317, "name": "ExpressionStatement", "src": "1006:41:16" }, @@ -1343,11 +1343,11 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 2235, + "referencedDeclaration": 2258, "type": "mapping(address => mapping(address => uint256))", "value": "allowed" }, - "id": 2295, + "id": 2318, "name": "Identifier", "src": "1053:7:16" }, @@ -1357,16 +1357,16 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 2237, + "referencedDeclaration": 2260, "type": "address", "value": "_from" }, - "id": 2296, + "id": 2319, "name": "Identifier", "src": "1061:5:16" } ], - "id": 2299, + "id": 2322, "name": "IndexAccess", "src": "1053:14:16" }, @@ -1388,21 +1388,21 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 2479, + "referencedDeclaration": 2502, "type": "msg", "value": "msg" }, - "id": 2297, + "id": 2320, "name": "Identifier", "src": "1068:3:16" } ], - "id": 2298, + "id": 2321, "name": "MemberAccess", "src": "1068:10:16" } ], - "id": 2300, + "id": 2323, "name": "IndexAccess", "src": "1053:26:16" }, @@ -1434,7 +1434,7 @@ "isPure": false, "lValueRequested": false, "member_name": "sub", - "referencedDeclaration": 1949, + "referencedDeclaration": 1972, "type": "function (uint256,uint256) pure returns (uint256)" }, "children": [ @@ -1464,11 +1464,11 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 2235, + "referencedDeclaration": 2258, "type": "mapping(address => mapping(address => uint256))", "value": "allowed" }, - "id": 2301, + "id": 2324, "name": "Identifier", "src": "1082:7:16" }, @@ -1478,16 +1478,16 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 2237, + "referencedDeclaration": 2260, "type": "address", "value": "_from" }, - "id": 2302, + "id": 2325, "name": "Identifier", "src": "1090:5:16" } ], - "id": 2303, + "id": 2326, "name": "IndexAccess", "src": "1082:14:16" }, @@ -1509,26 +1509,26 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 2479, + "referencedDeclaration": 2502, "type": "msg", "value": "msg" }, - "id": 2304, + "id": 2327, "name": "Identifier", "src": "1097:3:16" } ], - "id": 2305, + "id": 2328, "name": "MemberAccess", "src": "1097:10:16" } ], - "id": 2306, + "id": 2329, "name": "IndexAccess", "src": "1082:26:16" } ], - "id": 2307, + "id": 2330, "name": "MemberAccess", "src": "1082:30:16" }, @@ -1538,26 +1538,26 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 2241, + "referencedDeclaration": 2264, "type": "uint256", "value": "_value" }, - "id": 2308, + "id": 2331, "name": "Identifier", "src": "1113:6:16" } ], - "id": 2309, + "id": 2332, "name": "FunctionCall", "src": "1082:38:16" } ], - "id": 2310, + "id": 2333, "name": "Assignment", "src": "1053:67:16" } ], - "id": 2311, + "id": 2334, "name": "ExpressionStatement", "src": "1053:67:16" }, @@ -1597,11 +1597,11 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 2220, + "referencedDeclaration": 2243, "type": "function (address,address,uint256)", "value": "Transfer" }, - "id": 2312, + "id": 2335, "name": "Identifier", "src": "1126:8:16" }, @@ -1611,11 +1611,11 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 2237, + "referencedDeclaration": 2260, "type": "address", "value": "_from" }, - "id": 2313, + "id": 2336, "name": "Identifier", "src": "1135:5:16" }, @@ -1625,11 +1625,11 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 2239, + "referencedDeclaration": 2262, "type": "address", "value": "_to" }, - "id": 2314, + "id": 2337, "name": "Identifier", "src": "1142:3:16" }, @@ -1639,27 +1639,27 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 2241, + "referencedDeclaration": 2264, "type": "uint256", "value": "_value" }, - "id": 2315, + "id": 2338, "name": "Identifier", "src": "1147:6:16" } ], - "id": 2316, + "id": 2339, "name": "FunctionCall", "src": "1126:28:16" } ], - "id": 2317, + "id": 2340, "name": "ExpressionStatement", "src": "1126:28:16" }, { "attributes": { - "functionReturnParameters": 2245 + "functionReturnParameters": 2268 }, "children": [ { @@ -1675,22 +1675,22 @@ "type": "bool", "value": "true" }, - "id": 2318, + "id": 2341, "name": "Literal", "src": "1167:4:16" } ], - "id": 2319, + "id": 2342, "name": "Return", "src": "1160:11:16" } ], - "id": 2320, + "id": 2343, "name": "Block", "src": "825:351:16" } ], - "id": 2321, + "id": 2344, "name": "FunctionDefinition", "src": "737:439:16" }, @@ -1704,9 +1704,9 @@ ], "name": "approve", "payable": false, - "scope": 2467, + "scope": 2490, "stateMutability": "nonpayable", - "superFunction": 2183, + "superFunction": 2206, "visibility": "public" }, "children": [ @@ -1716,7 +1716,7 @@ "attributes": { "constant": false, "name": "_spender", - "scope": 2349, + "scope": 2372, "stateVariable": false, "storageLocation": "default", "type": "address", @@ -1729,12 +1729,12 @@ "name": "address", "type": "address" }, - "id": 2322, + "id": 2345, "name": "ElementaryTypeName", "src": "1816:7:16" } ], - "id": 2323, + "id": 2346, "name": "VariableDeclaration", "src": "1816:16:16" }, @@ -1742,7 +1742,7 @@ "attributes": { "constant": false, "name": "_value", - "scope": 2349, + "scope": 2372, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -1755,17 +1755,17 @@ "name": "uint256", "type": "uint256" }, - "id": 2324, + "id": 2347, "name": "ElementaryTypeName", "src": "1834:7:16" } ], - "id": 2325, + "id": 2348, "name": "VariableDeclaration", "src": "1834:14:16" } ], - "id": 2326, + "id": 2349, "name": "ParameterList", "src": "1815:34:16" }, @@ -1775,7 +1775,7 @@ "attributes": { "constant": false, "name": "", - "scope": 2349, + "scope": 2372, "stateVariable": false, "storageLocation": "default", "type": "bool", @@ -1788,17 +1788,17 @@ "name": "bool", "type": "bool" }, - "id": 2327, + "id": 2350, "name": "ElementaryTypeName", "src": "1866:4:16" } ], - "id": 2328, + "id": 2351, "name": "VariableDeclaration", "src": "1866:4:16" } ], - "id": 2329, + "id": 2352, "name": "ParameterList", "src": "1865:6:16" }, @@ -1843,11 +1843,11 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 2235, + "referencedDeclaration": 2258, "type": "mapping(address => mapping(address => uint256))", "value": "allowed" }, - "id": 2330, + "id": 2353, "name": "Identifier", "src": "1878:7:16" }, @@ -1869,21 +1869,21 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 2479, + "referencedDeclaration": 2502, "type": "msg", "value": "msg" }, - "id": 2331, + "id": 2354, "name": "Identifier", "src": "1886:3:16" } ], - "id": 2332, + "id": 2355, "name": "MemberAccess", "src": "1886:10:16" } ], - "id": 2334, + "id": 2357, "name": "IndexAccess", "src": "1878:19:16" }, @@ -1893,16 +1893,16 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 2323, + "referencedDeclaration": 2346, "type": "address", "value": "_spender" }, - "id": 2333, + "id": 2356, "name": "Identifier", "src": "1898:8:16" } ], - "id": 2335, + "id": 2358, "name": "IndexAccess", "src": "1878:29:16" }, @@ -1912,21 +1912,21 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 2325, + "referencedDeclaration": 2348, "type": "uint256", "value": "_value" }, - "id": 2336, + "id": 2359, "name": "Identifier", "src": "1910:6:16" } ], - "id": 2337, + "id": 2360, "name": "Assignment", "src": "1878:38:16" } ], - "id": 2338, + "id": 2361, "name": "ExpressionStatement", "src": "1878:38:16" }, @@ -1966,11 +1966,11 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 2191, + "referencedDeclaration": 2214, "type": "function (address,address,uint256)", "value": "Approval" }, - "id": 2339, + "id": 2362, "name": "Identifier", "src": "1922:8:16" }, @@ -1992,16 +1992,16 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 2479, + "referencedDeclaration": 2502, "type": "msg", "value": "msg" }, - "id": 2340, + "id": 2363, "name": "Identifier", "src": "1931:3:16" } ], - "id": 2341, + "id": 2364, "name": "MemberAccess", "src": "1931:10:16" }, @@ -2011,11 +2011,11 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 2323, + "referencedDeclaration": 2346, "type": "address", "value": "_spender" }, - "id": 2342, + "id": 2365, "name": "Identifier", "src": "1943:8:16" }, @@ -2025,27 +2025,27 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 2325, + "referencedDeclaration": 2348, "type": "uint256", "value": "_value" }, - "id": 2343, + "id": 2366, "name": "Identifier", "src": "1953:6:16" } ], - "id": 2344, + "id": 2367, "name": "FunctionCall", "src": "1922:38:16" } ], - "id": 2345, + "id": 2368, "name": "ExpressionStatement", "src": "1922:38:16" }, { "attributes": { - "functionReturnParameters": 2329 + "functionReturnParameters": 2352 }, "children": [ { @@ -2061,22 +2061,22 @@ "type": "bool", "value": "true" }, - "id": 2346, + "id": 2369, "name": "Literal", "src": "1973:4:16" } ], - "id": 2347, + "id": 2370, "name": "Return", "src": "1966:11:16" } ], - "id": 2348, + "id": 2371, "name": "Block", "src": "1872:110:16" } ], - "id": 2349, + "id": 2372, "name": "FunctionDefinition", "src": "1799:183:16" }, @@ -2090,9 +2090,9 @@ ], "name": "allowance", "payable": false, - "scope": 2467, + "scope": 2490, "stateMutability": "view", - "superFunction": 2163, + "superFunction": 2186, "visibility": "public" }, "children": [ @@ -2102,7 +2102,7 @@ "attributes": { "constant": false, "name": "_owner", - "scope": 2365, + "scope": 2388, "stateVariable": false, "storageLocation": "default", "type": "address", @@ -2115,12 +2115,12 @@ "name": "address", "type": "address" }, - "id": 2350, + "id": 2373, "name": "ElementaryTypeName", "src": "2320:7:16" } ], - "id": 2351, + "id": 2374, "name": "VariableDeclaration", "src": "2320:14:16" }, @@ -2128,7 +2128,7 @@ "attributes": { "constant": false, "name": "_spender", - "scope": 2365, + "scope": 2388, "stateVariable": false, "storageLocation": "default", "type": "address", @@ -2141,17 +2141,17 @@ "name": "address", "type": "address" }, - "id": 2352, + "id": 2375, "name": "ElementaryTypeName", "src": "2336:7:16" } ], - "id": 2353, + "id": 2376, "name": "VariableDeclaration", "src": "2336:16:16" } ], - "id": 2354, + "id": 2377, "name": "ParameterList", "src": "2319:34:16" }, @@ -2161,7 +2161,7 @@ "attributes": { "constant": false, "name": "", - "scope": 2365, + "scope": 2388, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -2174,17 +2174,17 @@ "name": "uint256", "type": "uint256" }, - "id": 2355, + "id": 2378, "name": "ElementaryTypeName", "src": "2375:7:16" } ], - "id": 2356, + "id": 2379, "name": "VariableDeclaration", "src": "2375:7:16" } ], - "id": 2357, + "id": 2380, "name": "ParameterList", "src": "2374:9:16" }, @@ -2192,7 +2192,7 @@ "children": [ { "attributes": { - "functionReturnParameters": 2357 + "functionReturnParameters": 2380 }, "children": [ { @@ -2221,11 +2221,11 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 2235, + "referencedDeclaration": 2258, "type": "mapping(address => mapping(address => uint256))", "value": "allowed" }, - "id": 2358, + "id": 2381, "name": "Identifier", "src": "2397:7:16" }, @@ -2235,16 +2235,16 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 2351, + "referencedDeclaration": 2374, "type": "address", "value": "_owner" }, - "id": 2359, + "id": 2382, "name": "Identifier", "src": "2405:6:16" } ], - "id": 2360, + "id": 2383, "name": "IndexAccess", "src": "2397:15:16" }, @@ -2254,31 +2254,31 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 2353, + "referencedDeclaration": 2376, "type": "address", "value": "_spender" }, - "id": 2361, + "id": 2384, "name": "Identifier", "src": "2413:8:16" } ], - "id": 2362, + "id": 2385, "name": "IndexAccess", "src": "2397:25:16" } ], - "id": 2363, + "id": 2386, "name": "Return", "src": "2390:32:16" } ], - "id": 2364, + "id": 2387, "name": "Block", "src": "2384:43:16" } ], - "id": 2365, + "id": 2388, "name": "FunctionDefinition", "src": "2301:126:16" }, @@ -2292,7 +2292,7 @@ ], "name": "increaseApproval", "payable": false, - "scope": 2467, + "scope": 2490, "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" @@ -2304,7 +2304,7 @@ "attributes": { "constant": false, "name": "_spender", - "scope": 2406, + "scope": 2429, "stateVariable": false, "storageLocation": "default", "type": "address", @@ -2317,12 +2317,12 @@ "name": "address", "type": "address" }, - "id": 2366, + "id": 2389, "name": "ElementaryTypeName", "src": "2910:7:16" } ], - "id": 2367, + "id": 2390, "name": "VariableDeclaration", "src": "2910:16:16" }, @@ -2330,7 +2330,7 @@ "attributes": { "constant": false, "name": "_addedValue", - "scope": 2406, + "scope": 2429, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -2343,17 +2343,17 @@ "name": "uint", "type": "uint256" }, - "id": 2368, + "id": 2391, "name": "ElementaryTypeName", "src": "2928:4:16" } ], - "id": 2369, + "id": 2392, "name": "VariableDeclaration", "src": "2928:16:16" } ], - "id": 2370, + "id": 2393, "name": "ParameterList", "src": "2909:36:16" }, @@ -2363,7 +2363,7 @@ "attributes": { "constant": false, "name": "", - "scope": 2406, + "scope": 2429, "stateVariable": false, "storageLocation": "default", "type": "bool", @@ -2376,17 +2376,17 @@ "name": "bool", "type": "bool" }, - "id": 2371, + "id": 2394, "name": "ElementaryTypeName", "src": "2962:4:16" } ], - "id": 2372, + "id": 2395, "name": "VariableDeclaration", "src": "2962:4:16" } ], - "id": 2373, + "id": 2396, "name": "ParameterList", "src": "2961:6:16" }, @@ -2431,11 +2431,11 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 2235, + "referencedDeclaration": 2258, "type": "mapping(address => mapping(address => uint256))", "value": "allowed" }, - "id": 2374, + "id": 2397, "name": "Identifier", "src": "2974:7:16" }, @@ -2457,21 +2457,21 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 2479, + "referencedDeclaration": 2502, "type": "msg", "value": "msg" }, - "id": 2375, + "id": 2398, "name": "Identifier", "src": "2982:3:16" } ], - "id": 2376, + "id": 2399, "name": "MemberAccess", "src": "2982:10:16" } ], - "id": 2378, + "id": 2401, "name": "IndexAccess", "src": "2974:19:16" }, @@ -2481,16 +2481,16 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 2367, + "referencedDeclaration": 2390, "type": "address", "value": "_spender" }, - "id": 2377, + "id": 2400, "name": "Identifier", "src": "2994:8:16" } ], - "id": 2379, + "id": 2402, "name": "IndexAccess", "src": "2974:29:16" }, @@ -2522,7 +2522,7 @@ "isPure": false, "lValueRequested": false, "member_name": "add", - "referencedDeclaration": 1973, + "referencedDeclaration": 1996, "type": "function (uint256,uint256) pure returns (uint256)" }, "children": [ @@ -2552,11 +2552,11 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 2235, + "referencedDeclaration": 2258, "type": "mapping(address => mapping(address => uint256))", "value": "allowed" }, - "id": 2380, + "id": 2403, "name": "Identifier", "src": "3006:7:16" }, @@ -2578,21 +2578,21 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 2479, + "referencedDeclaration": 2502, "type": "msg", "value": "msg" }, - "id": 2381, + "id": 2404, "name": "Identifier", "src": "3014:3:16" } ], - "id": 2382, + "id": 2405, "name": "MemberAccess", "src": "3014:10:16" } ], - "id": 2383, + "id": 2406, "name": "IndexAccess", "src": "3006:19:16" }, @@ -2602,21 +2602,21 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 2367, + "referencedDeclaration": 2390, "type": "address", "value": "_spender" }, - "id": 2384, + "id": 2407, "name": "Identifier", "src": "3026:8:16" } ], - "id": 2385, + "id": 2408, "name": "IndexAccess", "src": "3006:29:16" } ], - "id": 2386, + "id": 2409, "name": "MemberAccess", "src": "3006:33:16" }, @@ -2626,26 +2626,26 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 2369, + "referencedDeclaration": 2392, "type": "uint256", "value": "_addedValue" }, - "id": 2387, + "id": 2410, "name": "Identifier", "src": "3040:11:16" } ], - "id": 2388, + "id": 2411, "name": "FunctionCall", "src": "3006:46:16" } ], - "id": 2389, + "id": 2412, "name": "Assignment", "src": "2974:78:16" } ], - "id": 2390, + "id": 2413, "name": "ExpressionStatement", "src": "2974:78:16" }, @@ -2685,11 +2685,11 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 2191, + "referencedDeclaration": 2214, "type": "function (address,address,uint256)", "value": "Approval" }, - "id": 2391, + "id": 2414, "name": "Identifier", "src": "3058:8:16" }, @@ -2711,16 +2711,16 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 2479, + "referencedDeclaration": 2502, "type": "msg", "value": "msg" }, - "id": 2392, + "id": 2415, "name": "Identifier", "src": "3067:3:16" } ], - "id": 2393, + "id": 2416, "name": "MemberAccess", "src": "3067:10:16" }, @@ -2730,11 +2730,11 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 2367, + "referencedDeclaration": 2390, "type": "address", "value": "_spender" }, - "id": 2394, + "id": 2417, "name": "Identifier", "src": "3079:8:16" }, @@ -2764,11 +2764,11 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 2235, + "referencedDeclaration": 2258, "type": "mapping(address => mapping(address => uint256))", "value": "allowed" }, - "id": 2395, + "id": 2418, "name": "Identifier", "src": "3089:7:16" }, @@ -2790,21 +2790,21 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 2479, + "referencedDeclaration": 2502, "type": "msg", "value": "msg" }, - "id": 2396, + "id": 2419, "name": "Identifier", "src": "3097:3:16" } ], - "id": 2397, + "id": 2420, "name": "MemberAccess", "src": "3097:10:16" } ], - "id": 2398, + "id": 2421, "name": "IndexAccess", "src": "3089:19:16" }, @@ -2814,32 +2814,32 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 2367, + "referencedDeclaration": 2390, "type": "address", "value": "_spender" }, - "id": 2399, + "id": 2422, "name": "Identifier", "src": "3109:8:16" } ], - "id": 2400, + "id": 2423, "name": "IndexAccess", "src": "3089:29:16" } ], - "id": 2401, + "id": 2424, "name": "FunctionCall", "src": "3058:61:16" } ], - "id": 2402, + "id": 2425, "name": "ExpressionStatement", "src": "3058:61:16" }, { "attributes": { - "functionReturnParameters": 2373 + "functionReturnParameters": 2396 }, "children": [ { @@ -2855,22 +2855,22 @@ "type": "bool", "value": "true" }, - "id": 2403, + "id": 2426, "name": "Literal", "src": "3132:4:16" } ], - "id": 2404, + "id": 2427, "name": "Return", "src": "3125:11:16" } ], - "id": 2405, + "id": 2428, "name": "Block", "src": "2968:173:16" } ], - "id": 2406, + "id": 2429, "name": "FunctionDefinition", "src": "2884:257:16" }, @@ -2884,7 +2884,7 @@ ], "name": "decreaseApproval", "payable": false, - "scope": 2467, + "scope": 2490, "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" @@ -2896,7 +2896,7 @@ "attributes": { "constant": false, "name": "_spender", - "scope": 2466, + "scope": 2489, "stateVariable": false, "storageLocation": "default", "type": "address", @@ -2909,12 +2909,12 @@ "name": "address", "type": "address" }, - "id": 2407, + "id": 2430, "name": "ElementaryTypeName", "src": "3629:7:16" } ], - "id": 2408, + "id": 2431, "name": "VariableDeclaration", "src": "3629:16:16" }, @@ -2922,7 +2922,7 @@ "attributes": { "constant": false, "name": "_subtractedValue", - "scope": 2466, + "scope": 2489, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -2935,17 +2935,17 @@ "name": "uint", "type": "uint256" }, - "id": 2409, + "id": 2432, "name": "ElementaryTypeName", "src": "3647:4:16" } ], - "id": 2410, + "id": 2433, "name": "VariableDeclaration", "src": "3647:21:16" } ], - "id": 2411, + "id": 2434, "name": "ParameterList", "src": "3628:41:16" }, @@ -2955,7 +2955,7 @@ "attributes": { "constant": false, "name": "", - "scope": 2466, + "scope": 2489, "stateVariable": false, "storageLocation": "default", "type": "bool", @@ -2968,17 +2968,17 @@ "name": "bool", "type": "bool" }, - "id": 2412, + "id": 2435, "name": "ElementaryTypeName", "src": "3686:4:16" } ], - "id": 2413, + "id": 2436, "name": "VariableDeclaration", "src": "3686:4:16" } ], - "id": 2414, + "id": 2437, "name": "ParameterList", "src": "3685:6:16" }, @@ -2987,7 +2987,7 @@ { "attributes": { "assignments": [ - 2416 + 2439 ] }, "children": [ @@ -2995,7 +2995,7 @@ "attributes": { "constant": false, "name": "oldValue", - "scope": 2466, + "scope": 2489, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -3008,12 +3008,12 @@ "name": "uint", "type": "uint256" }, - "id": 2415, + "id": 2438, "name": "ElementaryTypeName", "src": "3698:4:16" } ], - "id": 2416, + "id": 2439, "name": "VariableDeclaration", "src": "3698:13:16" }, @@ -3043,11 +3043,11 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 2235, + "referencedDeclaration": 2258, "type": "mapping(address => mapping(address => uint256))", "value": "allowed" }, - "id": 2417, + "id": 2440, "name": "Identifier", "src": "3714:7:16" }, @@ -3069,21 +3069,21 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 2479, + "referencedDeclaration": 2502, "type": "msg", "value": "msg" }, - "id": 2418, + "id": 2441, "name": "Identifier", "src": "3722:3:16" } ], - "id": 2419, + "id": 2442, "name": "MemberAccess", "src": "3722:10:16" } ], - "id": 2420, + "id": 2443, "name": "IndexAccess", "src": "3714:19:16" }, @@ -3093,21 +3093,21 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 2408, + "referencedDeclaration": 2431, "type": "address", "value": "_spender" }, - "id": 2421, + "id": 2444, "name": "Identifier", "src": "3734:8:16" } ], - "id": 2422, + "id": 2445, "name": "IndexAccess", "src": "3714:29:16" } ], - "id": 2423, + "id": 2446, "name": "VariableDeclarationStatement", "src": "3698:45:16" }, @@ -3134,11 +3134,11 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 2410, + "referencedDeclaration": 2433, "type": "uint256", "value": "_subtractedValue" }, - "id": 2424, + "id": 2447, "name": "Identifier", "src": "3753:16:16" }, @@ -3148,16 +3148,16 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 2416, + "referencedDeclaration": 2439, "type": "uint256", "value": "oldValue" }, - "id": 2425, + "id": 2448, "name": "Identifier", "src": "3772:8:16" } ], - "id": 2426, + "id": 2449, "name": "BinaryOperation", "src": "3753:27:16" }, @@ -3202,11 +3202,11 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 2235, + "referencedDeclaration": 2258, "type": "mapping(address => mapping(address => uint256))", "value": "allowed" }, - "id": 2427, + "id": 2450, "name": "Identifier", "src": "3790:7:16" }, @@ -3228,21 +3228,21 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 2479, + "referencedDeclaration": 2502, "type": "msg", "value": "msg" }, - "id": 2428, + "id": 2451, "name": "Identifier", "src": "3798:3:16" } ], - "id": 2429, + "id": 2452, "name": "MemberAccess", "src": "3798:10:16" } ], - "id": 2431, + "id": 2454, "name": "IndexAccess", "src": "3790:19:16" }, @@ -3252,16 +3252,16 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 2408, + "referencedDeclaration": 2431, "type": "address", "value": "_spender" }, - "id": 2430, + "id": 2453, "name": "Identifier", "src": "3810:8:16" } ], - "id": 2432, + "id": 2455, "name": "IndexAccess", "src": "3790:29:16" }, @@ -3278,22 +3278,22 @@ "type": "int_const 0", "value": "0" }, - "id": 2433, + "id": 2456, "name": "Literal", "src": "3822:1:16" } ], - "id": 2434, + "id": 2457, "name": "Assignment", "src": "3790:33:16" } ], - "id": 2435, + "id": 2458, "name": "ExpressionStatement", "src": "3790:33:16" } ], - "id": 2436, + "id": 2459, "name": "Block", "src": "3782:48:16" }, @@ -3338,11 +3338,11 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 2235, + "referencedDeclaration": 2258, "type": "mapping(address => mapping(address => uint256))", "value": "allowed" }, - "id": 2437, + "id": 2460, "name": "Identifier", "src": "3844:7:16" }, @@ -3364,21 +3364,21 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 2479, + "referencedDeclaration": 2502, "type": "msg", "value": "msg" }, - "id": 2438, + "id": 2461, "name": "Identifier", "src": "3852:3:16" } ], - "id": 2439, + "id": 2462, "name": "MemberAccess", "src": "3852:10:16" } ], - "id": 2441, + "id": 2464, "name": "IndexAccess", "src": "3844:19:16" }, @@ -3388,16 +3388,16 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 2408, + "referencedDeclaration": 2431, "type": "address", "value": "_spender" }, - "id": 2440, + "id": 2463, "name": "Identifier", "src": "3864:8:16" } ], - "id": 2442, + "id": 2465, "name": "IndexAccess", "src": "3844:29:16" }, @@ -3429,7 +3429,7 @@ "isPure": false, "lValueRequested": false, "member_name": "sub", - "referencedDeclaration": 1949, + "referencedDeclaration": 1972, "type": "function (uint256,uint256) pure returns (uint256)" }, "children": [ @@ -3439,16 +3439,16 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 2416, + "referencedDeclaration": 2439, "type": "uint256", "value": "oldValue" }, - "id": 2443, + "id": 2466, "name": "Identifier", "src": "3876:8:16" } ], - "id": 2444, + "id": 2467, "name": "MemberAccess", "src": "3876:12:16" }, @@ -3458,36 +3458,36 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 2410, + "referencedDeclaration": 2433, "type": "uint256", "value": "_subtractedValue" }, - "id": 2445, + "id": 2468, "name": "Identifier", "src": "3889:16:16" } ], - "id": 2446, + "id": 2469, "name": "FunctionCall", "src": "3876:30:16" } ], - "id": 2447, + "id": 2470, "name": "Assignment", "src": "3844:62:16" } ], - "id": 2448, + "id": 2471, "name": "ExpressionStatement", "src": "3844:62:16" } ], - "id": 2449, + "id": 2472, "name": "Block", "src": "3836:77:16" } ], - "id": 2450, + "id": 2473, "name": "IfStatement", "src": "3749:164:16" }, @@ -3527,11 +3527,11 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 2191, + "referencedDeclaration": 2214, "type": "function (address,address,uint256)", "value": "Approval" }, - "id": 2451, + "id": 2474, "name": "Identifier", "src": "3918:8:16" }, @@ -3553,16 +3553,16 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 2479, + "referencedDeclaration": 2502, "type": "msg", "value": "msg" }, - "id": 2452, + "id": 2475, "name": "Identifier", "src": "3927:3:16" } ], - "id": 2453, + "id": 2476, "name": "MemberAccess", "src": "3927:10:16" }, @@ -3572,11 +3572,11 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 2408, + "referencedDeclaration": 2431, "type": "address", "value": "_spender" }, - "id": 2454, + "id": 2477, "name": "Identifier", "src": "3939:8:16" }, @@ -3606,11 +3606,11 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 2235, + "referencedDeclaration": 2258, "type": "mapping(address => mapping(address => uint256))", "value": "allowed" }, - "id": 2455, + "id": 2478, "name": "Identifier", "src": "3949:7:16" }, @@ -3632,21 +3632,21 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 2479, + "referencedDeclaration": 2502, "type": "msg", "value": "msg" }, - "id": 2456, + "id": 2479, "name": "Identifier", "src": "3957:3:16" } ], - "id": 2457, + "id": 2480, "name": "MemberAccess", "src": "3957:10:16" } ], - "id": 2458, + "id": 2481, "name": "IndexAccess", "src": "3949:19:16" }, @@ -3656,32 +3656,32 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 2408, + "referencedDeclaration": 2431, "type": "address", "value": "_spender" }, - "id": 2459, + "id": 2482, "name": "Identifier", "src": "3969:8:16" } ], - "id": 2460, + "id": 2483, "name": "IndexAccess", "src": "3949:29:16" } ], - "id": 2461, + "id": 2484, "name": "FunctionCall", "src": "3918:61:16" } ], - "id": 2462, + "id": 2485, "name": "ExpressionStatement", "src": "3918:61:16" }, { "attributes": { - "functionReturnParameters": 2414 + "functionReturnParameters": 2437 }, "children": [ { @@ -3697,32 +3697,32 @@ "type": "bool", "value": "true" }, - "id": 2463, + "id": 2486, "name": "Literal", "src": "3992:4:16" } ], - "id": 2464, + "id": 2487, "name": "Return", "src": "3985:11:16" } ], - "id": 2465, + "id": 2488, "name": "Block", "src": "3692:309:16" } ], - "id": 2466, + "id": 2489, "name": "FunctionDefinition", "src": "3603:398:16" } ], - "id": 2467, + "id": 2490, "name": "ContractDefinition", "src": "345:3659:16" } ], - "id": 2468, + "id": 2491, "name": "SourceUnit", "src": "0:4005:16" }, @@ -3732,5 +3732,5 @@ }, "networks": {}, "schemaVersion": "1.0.1", - "updatedAt": "2018-01-14T11:06:54.647Z" + "updatedAt": "2018-01-16T07:16:25.776Z" } \ No newline at end of file diff --git a/build/contracts/TransactionManager.json b/build/contracts/TransactionManager.json index 281520f..d15085a 100644 --- a/build/contracts/TransactionManager.json +++ b/build/contracts/TransactionManager.json @@ -606,7 +606,7 @@ "absolutePath": "/home/kc1116/Desktop/badgeforce_development/badgeforce/contracts/TransactionManager.sol", "exportedSymbols": { "TransactionManager": [ - 1580 + 1603 ] } }, @@ -620,7 +620,7 @@ ".17" ] }, - "id": 1377, + "id": 1400, "name": "PragmaDirective", "src": "0:24:6" }, @@ -629,13 +629,13 @@ "SourceUnit": 605, "absolutePath": "/home/kc1116/Desktop/badgeforce_development/badgeforce/contracts/BadgeManager.sol", "file": "./BadgeManager.sol", - "scope": 1581, + "scope": 1604, "symbolAliases": [ null ], "unitAlias": "" }, - "id": 1378, + "id": 1401, "name": "ImportDirective", "src": "26:28:6" }, @@ -644,13 +644,13 @@ "SourceUnit": 207, "absolutePath": "/home/kc1116/Desktop/badgeforce_development/badgeforce/contracts/BFUtils.sol", "file": "./BFUtils.sol", - "scope": 1581, + "scope": 1604, "symbolAliases": [ null ], "unitAlias": "" }, - "id": 1379, + "id": 1402, "name": "ImportDirective", "src": "55:23:6" }, @@ -665,13 +665,13 @@ "documentation": null, "fullyImplemented": true, "linearizedBaseContracts": [ - 1580, + 1603, 206, 604, 176 ], "name": "TransactionManager", - "scope": 1581 + "scope": 1604 }, "children": [ { @@ -688,12 +688,12 @@ "referencedDeclaration": 604, "type": "contract BadgeManager" }, - "id": 1380, + "id": 1403, "name": "UserDefinedTypeName", "src": "111:12:6" } ], - "id": 1381, + "id": 1404, "name": "InheritanceSpecifier", "src": "111:12:6" }, @@ -711,12 +711,12 @@ "referencedDeclaration": 206, "type": "contract BFUtils" }, - "id": 1382, + "id": 1405, "name": "UserDefinedTypeName", "src": "125:7:6" } ], - "id": 1383, + "id": 1406, "name": "InheritanceSpecifier", "src": "125:7:6" }, @@ -724,7 +724,7 @@ "attributes": { "canonicalName": "TransactionManager.Transaction", "name": "Transaction", - "scope": 1580, + "scope": 1603, "visibility": "public" }, "children": [ @@ -732,7 +732,7 @@ "attributes": { "constant": false, "name": "key", - "scope": 1392, + "scope": 1415, "stateVariable": false, "storageLocation": "default", "type": "bytes32", @@ -745,12 +745,12 @@ "name": "bytes32", "type": "bytes32" }, - "id": 1384, + "id": 1407, "name": "ElementaryTypeName", "src": "169:7:6" } ], - "id": 1385, + "id": 1408, "name": "VariableDeclaration", "src": "169:11:6" }, @@ -758,7 +758,7 @@ "attributes": { "constant": false, "name": "integrityHash", - "scope": 1392, + "scope": 1415, "stateVariable": false, "storageLocation": "default", "type": "bytes32", @@ -771,12 +771,12 @@ "name": "bytes32", "type": "bytes32" }, - "id": 1386, + "id": 1409, "name": "ElementaryTypeName", "src": "190:7:6" } ], - "id": 1387, + "id": 1410, "name": "VariableDeclaration", "src": "190:21:6" }, @@ -784,7 +784,7 @@ "attributes": { "constant": false, "name": "recipient", - "scope": 1392, + "scope": 1415, "stateVariable": false, "storageLocation": "default", "type": "address", @@ -797,12 +797,12 @@ "name": "address", "type": "address" }, - "id": 1388, + "id": 1411, "name": "ElementaryTypeName", "src": "221:7:6" } ], - "id": 1389, + "id": 1412, "name": "VariableDeclaration", "src": "221:17:6" }, @@ -810,7 +810,7 @@ "attributes": { "constant": false, "name": "revoked", - "scope": 1392, + "scope": 1415, "stateVariable": false, "storageLocation": "default", "type": "bool", @@ -823,17 +823,17 @@ "name": "bool", "type": "bool" }, - "id": 1390, + "id": 1413, "name": "ElementaryTypeName", "src": "248:4:6" } ], - "id": 1391, + "id": 1414, "name": "VariableDeclaration", "src": "248:12:6" } ], - "id": 1392, + "id": 1415, "name": "StructDefinition", "src": "140:127:6" }, @@ -841,7 +841,7 @@ "attributes": { "constant": false, "name": "credentialTxnMap", - "scope": 1580, + "scope": 1603, "stateVariable": true, "storageLocation": "default", "type": "mapping(bytes32 => struct TransactionManager.Transaction storage ref)", @@ -859,7 +859,7 @@ "name": "bytes32", "type": "bytes32" }, - "id": 1393, + "id": 1416, "name": "ElementaryTypeName", "src": "385:7:6" }, @@ -867,20 +867,20 @@ "attributes": { "contractScope": null, "name": "Transaction", - "referencedDeclaration": 1392, + "referencedDeclaration": 1415, "type": "struct TransactionManager.Transaction storage pointer" }, - "id": 1394, + "id": 1417, "name": "UserDefinedTypeName", "src": "394:11:6" } ], - "id": 1395, + "id": 1418, "name": "Mapping", "src": "376:30:6" } ], - "id": 1396, + "id": 1419, "name": "VariableDeclaration", "src": "376:54:6" }, @@ -888,7 +888,7 @@ "attributes": { "constant": false, "name": "nonce", - "scope": 1580, + "scope": 1603, "stateVariable": true, "storageLocation": "default", "type": "uint256", @@ -901,12 +901,12 @@ "name": "uint", "type": "uint256" }, - "id": 1397, + "id": 1420, "name": "ElementaryTypeName", "src": "437:4:6" } ], - "id": 1398, + "id": 1421, "name": "VariableDeclaration", "src": "437:17:6" }, @@ -917,7 +917,7 @@ "isConstructor": true, "name": "TransactionManager", "payable": false, - "scope": 1580, + "scope": 1603, "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" @@ -929,7 +929,7 @@ "attributes": { "constant": false, "name": "_adminWalletAddr", - "scope": 1411, + "scope": 1434, "stateVariable": false, "storageLocation": "default", "type": "address", @@ -942,17 +942,17 @@ "name": "address", "type": "address" }, - "id": 1399, + "id": 1422, "name": "ElementaryTypeName", "src": "489:7:6" } ], - "id": 1400, + "id": 1423, "name": "VariableDeclaration", "src": "489:24:6" } ], - "id": 1401, + "id": 1424, "name": "ParameterList", "src": "488:26:6" }, @@ -963,7 +963,7 @@ ] }, "children": [], - "id": 1405, + "id": 1428, "name": "ParameterList", "src": "553:0:6" }, @@ -979,7 +979,7 @@ "type": "type(contract BadgeManager)", "value": "BadgeManager" }, - "id": 1402, + "id": 1425, "name": "Identifier", "src": "522:12:6" }, @@ -989,16 +989,16 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1400, + "referencedDeclaration": 1423, "type": "address", "value": "_adminWalletAddr" }, - "id": 1403, + "id": 1426, "name": "Identifier", "src": "535:16:6" } ], - "id": 1404, + "id": 1427, "name": "ModifierInvocation", "src": "522:30:6" }, @@ -1023,11 +1023,11 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1398, + "referencedDeclaration": 1421, "type": "uint256", "value": "nonce" }, - "id": 1406, + "id": 1429, "name": "Identifier", "src": "563:5:6" }, @@ -1044,27 +1044,27 @@ "type": "int_const 0", "value": "0" }, - "id": 1407, + "id": 1430, "name": "Literal", "src": "571:1:6" } ], - "id": 1408, + "id": 1431, "name": "Assignment", "src": "563:9:6" } ], - "id": 1409, + "id": 1432, "name": "ExpressionStatement", "src": "563:9:6" } ], - "id": 1410, + "id": 1433, "name": "Block", "src": "553:26:6" } ], - "id": 1411, + "id": 1434, "name": "FunctionDefinition", "src": "461:118:6" }, @@ -1075,7 +1075,7 @@ "isConstructor": false, "name": "setNewTxn", "payable": false, - "scope": 1580, + "scope": 1603, "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" @@ -1087,7 +1087,7 @@ "attributes": { "constant": false, "name": "_txnKey", - "scope": 1468, + "scope": 1491, "stateVariable": false, "storageLocation": "default", "type": "bytes32", @@ -1100,12 +1100,12 @@ "name": "bytes32", "type": "bytes32" }, - "id": 1412, + "id": 1435, "name": "ElementaryTypeName", "src": "786:7:6" } ], - "id": 1413, + "id": 1436, "name": "VariableDeclaration", "src": "786:15:6" }, @@ -1113,7 +1113,7 @@ "attributes": { "constant": false, "name": "_recipient", - "scope": 1468, + "scope": 1491, "stateVariable": false, "storageLocation": "default", "type": "address", @@ -1126,12 +1126,12 @@ "name": "address", "type": "address" }, - "id": 1414, + "id": 1437, "name": "ElementaryTypeName", "src": "811:7:6" } ], - "id": 1415, + "id": 1438, "name": "VariableDeclaration", "src": "811:18:6" }, @@ -1139,7 +1139,7 @@ "attributes": { "constant": false, "name": "_badgeName", - "scope": 1468, + "scope": 1491, "stateVariable": false, "storageLocation": "default", "type": "string memory", @@ -1152,17 +1152,17 @@ "name": "string", "type": "string storage pointer" }, - "id": 1416, + "id": 1439, "name": "ElementaryTypeName", "src": "839:6:6" } ], - "id": 1417, + "id": 1440, "name": "VariableDeclaration", "src": "839:17:6" } ], - "id": 1418, + "id": 1441, "name": "ParameterList", "src": "776:81:6" }, @@ -1173,7 +1173,7 @@ ] }, "children": [], - "id": 1423, + "id": 1446, "name": "ParameterList", "src": "896:0:6" }, @@ -1189,7 +1189,7 @@ "type": "modifier (address)", "value": "authorized" }, - "id": 1419, + "id": 1442, "name": "Identifier", "src": "858:10:6" }, @@ -1211,21 +1211,21 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 2479, + "referencedDeclaration": 2502, "type": "msg", "value": "msg" }, - "id": 1420, + "id": 1443, "name": "Identifier", "src": "869:3:6" } ], - "id": 1421, + "id": 1444, "name": "MemberAccess", "src": "869:10:6" } ], - "id": 1422, + "id": 1445, "name": "ModifierInvocation", "src": "858:22:6" }, @@ -1251,28 +1251,28 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1398, + "referencedDeclaration": 1421, "type": "uint256", "value": "nonce" }, - "id": 1424, + "id": 1447, "name": "Identifier", "src": "931:5:6" } ], - "id": 1425, + "id": 1448, "name": "UnaryOperation", "src": "931:7:6" } ], - "id": 1426, + "id": 1449, "name": "ExpressionStatement", "src": "931:7:6" }, { "attributes": { "assignments": [ - 1428 + 1451 ] }, "children": [ @@ -1280,7 +1280,7 @@ "attributes": { "constant": false, "name": "badgeNameHash", - "scope": 1468, + "scope": 1491, "stateVariable": false, "storageLocation": "default", "type": "bytes32", @@ -1293,12 +1293,12 @@ "name": "bytes32", "type": "bytes32" }, - "id": 1427, + "id": 1450, "name": "ElementaryTypeName", "src": "948:7:6" } ], - "id": 1428, + "id": 1451, "name": "VariableDeclaration", "src": "948:21:6" }, @@ -1332,7 +1332,7 @@ "type": "function (string memory) pure returns (bytes32)", "value": "getBadgeNameHash" }, - "id": 1429, + "id": 1452, "name": "Identifier", "src": "972:16:6" }, @@ -1342,28 +1342,28 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1417, + "referencedDeclaration": 1440, "type": "string memory", "value": "_badgeName" }, - "id": 1430, + "id": 1453, "name": "Identifier", "src": "989:10:6" } ], - "id": 1431, + "id": 1454, "name": "FunctionCall", "src": "972:28:6" } ], - "id": 1432, + "id": 1455, "name": "VariableDeclarationStatement", "src": "948:52:6" }, { "attributes": { "assignments": [ - 1434 + 1457 ] }, "children": [ @@ -1371,7 +1371,7 @@ "attributes": { "constant": false, "name": "badge", - "scope": 1468, + "scope": 1491, "stateVariable": false, "storageLocation": "memory", "type": "struct BadgeManager.Badge memory", @@ -1386,12 +1386,12 @@ "referencedDeclaration": 222, "type": "struct BadgeManager.Badge storage pointer" }, - "id": 1433, + "id": 1456, "name": "UserDefinedTypeName", "src": "1010:5:6" } ], - "id": 1434, + "id": 1457, "name": "VariableDeclaration", "src": "1010:18:6" }, @@ -1427,12 +1427,12 @@ "type": "struct BadgeManager.Vault storage ref", "value": "badgeVault" }, - "id": 1435, + "id": 1458, "name": "Identifier", "src": "1031:10:6" } ], - "id": 1436, + "id": 1459, "name": "MemberAccess", "src": "1031:17:6" }, @@ -1442,28 +1442,28 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1428, + "referencedDeclaration": 1451, "type": "bytes32", "value": "badgeNameHash" }, - "id": 1437, + "id": 1460, "name": "Identifier", "src": "1049:13:6" } ], - "id": 1438, + "id": 1461, "name": "IndexAccess", "src": "1031:32:6" } ], - "id": 1439, + "id": 1462, "name": "VariableDeclarationStatement", "src": "1010:53:6" }, { "attributes": { "assignments": [ - 1441 + 1464 ] }, "children": [ @@ -1471,7 +1471,7 @@ "attributes": { "constant": false, "name": "integrityHash", - "scope": 1468, + "scope": 1491, "stateVariable": false, "storageLocation": "default", "type": "bytes32", @@ -1484,12 +1484,12 @@ "name": "bytes32", "type": "bytes32" }, - "id": 1440, + "id": 1463, "name": "ElementaryTypeName", "src": "1073:7:6" } ], - "id": 1441, + "id": 1464, "name": "VariableDeclaration", "src": "1073:21:6" }, @@ -1543,7 +1543,7 @@ "type": "function (address,string memory,string memory,string memory,string memory,address) pure returns (bytes32)", "value": "getIntegrityHash" }, - "id": 1442, + "id": 1465, "name": "Identifier", "src": "1097:16:6" }, @@ -1565,16 +1565,16 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1434, + "referencedDeclaration": 1457, "type": "struct BadgeManager.Badge memory", "value": "badge" }, - "id": 1443, + "id": 1466, "name": "Identifier", "src": "1127:5:6" } ], - "id": 1444, + "id": 1467, "name": "MemberAccess", "src": "1127:12:6" }, @@ -1596,16 +1596,16 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1434, + "referencedDeclaration": 1457, "type": "struct BadgeManager.Badge memory", "value": "badge" }, - "id": 1445, + "id": 1468, "name": "Identifier", "src": "1153:5:6" } ], - "id": 1446, + "id": 1469, "name": "MemberAccess", "src": "1153:17:6" }, @@ -1627,16 +1627,16 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1434, + "referencedDeclaration": 1457, "type": "struct BadgeManager.Badge memory", "value": "badge" }, - "id": 1447, + "id": 1470, "name": "Identifier", "src": "1184:5:6" } ], - "id": 1448, + "id": 1471, "name": "MemberAccess", "src": "1184:10:6" }, @@ -1658,16 +1658,16 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1434, + "referencedDeclaration": 1457, "type": "struct BadgeManager.Badge memory", "value": "badge" }, - "id": 1449, + "id": 1472, "name": "Identifier", "src": "1208:5:6" } ], - "id": 1450, + "id": 1473, "name": "MemberAccess", "src": "1208:11:6" }, @@ -1689,16 +1689,16 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1434, + "referencedDeclaration": 1457, "type": "struct BadgeManager.Badge memory", "value": "badge" }, - "id": 1451, + "id": 1474, "name": "Identifier", "src": "1233:5:6" } ], - "id": 1452, + "id": 1475, "name": "MemberAccess", "src": "1233:13:6" }, @@ -1708,21 +1708,21 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1415, + "referencedDeclaration": 1438, "type": "address", "value": "_recipient" }, - "id": 1453, + "id": 1476, "name": "Identifier", "src": "1260:10:6" } ], - "id": 1454, + "id": 1477, "name": "FunctionCall", "src": "1097:183:6" } ], - "id": 1455, + "id": 1478, "name": "VariableDeclarationStatement", "src": "1073:207:6" }, @@ -1755,11 +1755,11 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1396, + "referencedDeclaration": 1419, "type": "mapping(bytes32 => struct TransactionManager.Transaction storage ref)", "value": "credentialTxnMap" }, - "id": 1456, + "id": 1479, "name": "Identifier", "src": "1290:16:6" }, @@ -1769,16 +1769,16 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1413, + "referencedDeclaration": 1436, "type": "bytes32", "value": "_txnKey" }, - "id": 1457, + "id": 1480, "name": "Identifier", "src": "1307:7:6" } ], - "id": 1458, + "id": 1481, "name": "IndexAccess", "src": "1290:25:6" }, @@ -1820,11 +1820,11 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1392, + "referencedDeclaration": 1415, "type": "type(struct TransactionManager.Transaction storage pointer)", "value": "Transaction" }, - "id": 1459, + "id": 1482, "name": "Identifier", "src": "1318:11:6" }, @@ -1834,11 +1834,11 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1413, + "referencedDeclaration": 1436, "type": "bytes32", "value": "_txnKey" }, - "id": 1460, + "id": 1483, "name": "Identifier", "src": "1330:7:6" }, @@ -1848,11 +1848,11 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1441, + "referencedDeclaration": 1464, "type": "bytes32", "value": "integrityHash" }, - "id": 1461, + "id": 1484, "name": "Identifier", "src": "1339:13:6" }, @@ -1862,11 +1862,11 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1415, + "referencedDeclaration": 1438, "type": "address", "value": "_recipient" }, - "id": 1462, + "id": 1485, "name": "Identifier", "src": "1354:10:6" }, @@ -1883,32 +1883,32 @@ "type": "bool", "value": "false" }, - "id": 1463, + "id": 1486, "name": "Literal", "src": "1366:5:6" } ], - "id": 1464, + "id": 1487, "name": "FunctionCall", "src": "1318:54:6" } ], - "id": 1465, + "id": 1488, "name": "Assignment", "src": "1290:82:6" } ], - "id": 1466, + "id": 1489, "name": "ExpressionStatement", "src": "1290:82:6" } ], - "id": 1467, + "id": 1490, "name": "Block", "src": "896:483:6" } ], - "id": 1468, + "id": 1491, "name": "FunctionDefinition", "src": "758:621:6" }, @@ -1922,7 +1922,7 @@ ], "name": "getTxn", "payable": false, - "scope": 1580, + "scope": 1603, "stateMutability": "view", "superFunction": null, "visibility": "public" @@ -1934,7 +1934,7 @@ "attributes": { "constant": false, "name": "_txnKey", - "scope": 1500, + "scope": 1523, "stateVariable": false, "storageLocation": "default", "type": "bytes32", @@ -1947,17 +1947,17 @@ "name": "bytes32", "type": "bytes32" }, - "id": 1469, + "id": 1492, "name": "ElementaryTypeName", "src": "1724:7:6" } ], - "id": 1470, + "id": 1493, "name": "VariableDeclaration", "src": "1724:15:6" } ], - "id": 1471, + "id": 1494, "name": "ParameterList", "src": "1723:17:6" }, @@ -1967,7 +1967,7 @@ "attributes": { "constant": false, "name": "txnKey", - "scope": 1500, + "scope": 1523, "stateVariable": false, "storageLocation": "default", "type": "bytes32", @@ -1980,12 +1980,12 @@ "name": "bytes32", "type": "bytes32" }, - "id": 1472, + "id": 1495, "name": "ElementaryTypeName", "src": "1765:7:6" } ], - "id": 1473, + "id": 1496, "name": "VariableDeclaration", "src": "1765:14:6" }, @@ -1993,7 +1993,7 @@ "attributes": { "constant": false, "name": "integrityHash", - "scope": 1500, + "scope": 1523, "stateVariable": false, "storageLocation": "default", "type": "bytes32", @@ -2006,12 +2006,12 @@ "name": "bytes32", "type": "bytes32" }, - "id": 1474, + "id": 1497, "name": "ElementaryTypeName", "src": "1781:7:6" } ], - "id": 1475, + "id": 1498, "name": "VariableDeclaration", "src": "1781:21:6" }, @@ -2019,7 +2019,7 @@ "attributes": { "constant": false, "name": "recipient", - "scope": 1500, + "scope": 1523, "stateVariable": false, "storageLocation": "default", "type": "address", @@ -2032,12 +2032,12 @@ "name": "address", "type": "address" }, - "id": 1476, + "id": 1499, "name": "ElementaryTypeName", "src": "1804:7:6" } ], - "id": 1477, + "id": 1500, "name": "VariableDeclaration", "src": "1804:17:6" }, @@ -2045,7 +2045,7 @@ "attributes": { "constant": false, "name": "revoked", - "scope": 1500, + "scope": 1523, "stateVariable": false, "storageLocation": "default", "type": "bool", @@ -2058,17 +2058,17 @@ "name": "bool", "type": "bool" }, - "id": 1478, + "id": 1501, "name": "ElementaryTypeName", "src": "1823:4:6" } ], - "id": 1479, + "id": 1502, "name": "VariableDeclaration", "src": "1823:12:6" } ], - "id": 1480, + "id": 1503, "name": "ParameterList", "src": "1764:72:6" }, @@ -2076,7 +2076,7 @@ "children": [ { "attributes": { - "functionReturnParameters": 1480 + "functionReturnParameters": 1503 }, "children": [ { @@ -2098,7 +2098,7 @@ "isPure": false, "lValueRequested": false, "member_name": "key", - "referencedDeclaration": 1385, + "referencedDeclaration": 1408, "type": "bytes32" }, "children": [ @@ -2118,11 +2118,11 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1396, + "referencedDeclaration": 1419, "type": "mapping(bytes32 => struct TransactionManager.Transaction storage ref)", "value": "credentialTxnMap" }, - "id": 1481, + "id": 1504, "name": "Identifier", "src": "1867:16:6" }, @@ -2132,21 +2132,21 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1470, + "referencedDeclaration": 1493, "type": "bytes32", "value": "_txnKey" }, - "id": 1482, + "id": 1505, "name": "Identifier", "src": "1884:7:6" } ], - "id": 1483, + "id": 1506, "name": "IndexAccess", "src": "1867:25:6" } ], - "id": 1484, + "id": 1507, "name": "MemberAccess", "src": "1867:29:6" }, @@ -2158,7 +2158,7 @@ "isPure": false, "lValueRequested": false, "member_name": "integrityHash", - "referencedDeclaration": 1387, + "referencedDeclaration": 1410, "type": "bytes32" }, "children": [ @@ -2178,11 +2178,11 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1396, + "referencedDeclaration": 1419, "type": "mapping(bytes32 => struct TransactionManager.Transaction storage ref)", "value": "credentialTxnMap" }, - "id": 1485, + "id": 1508, "name": "Identifier", "src": "1910:16:6" }, @@ -2192,21 +2192,21 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1470, + "referencedDeclaration": 1493, "type": "bytes32", "value": "_txnKey" }, - "id": 1486, + "id": 1509, "name": "Identifier", "src": "1927:7:6" } ], - "id": 1487, + "id": 1510, "name": "IndexAccess", "src": "1910:25:6" } ], - "id": 1488, + "id": 1511, "name": "MemberAccess", "src": "1910:39:6" }, @@ -2218,7 +2218,7 @@ "isPure": false, "lValueRequested": false, "member_name": "recipient", - "referencedDeclaration": 1389, + "referencedDeclaration": 1412, "type": "address" }, "children": [ @@ -2238,11 +2238,11 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1396, + "referencedDeclaration": 1419, "type": "mapping(bytes32 => struct TransactionManager.Transaction storage ref)", "value": "credentialTxnMap" }, - "id": 1489, + "id": 1512, "name": "Identifier", "src": "1963:16:6" }, @@ -2252,21 +2252,21 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1470, + "referencedDeclaration": 1493, "type": "bytes32", "value": "_txnKey" }, - "id": 1490, + "id": 1513, "name": "Identifier", "src": "1980:7:6" } ], - "id": 1491, + "id": 1514, "name": "IndexAccess", "src": "1963:25:6" } ], - "id": 1492, + "id": 1515, "name": "MemberAccess", "src": "1963:35:6" }, @@ -2278,7 +2278,7 @@ "isPure": false, "lValueRequested": false, "member_name": "revoked", - "referencedDeclaration": 1391, + "referencedDeclaration": 1414, "type": "bool" }, "children": [ @@ -2298,11 +2298,11 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1396, + "referencedDeclaration": 1419, "type": "mapping(bytes32 => struct TransactionManager.Transaction storage ref)", "value": "credentialTxnMap" }, - "id": 1493, + "id": 1516, "name": "Identifier", "src": "2012:16:6" }, @@ -2312,41 +2312,41 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1470, + "referencedDeclaration": 1493, "type": "bytes32", "value": "_txnKey" }, - "id": 1494, + "id": 1517, "name": "Identifier", "src": "2029:7:6" } ], - "id": 1495, + "id": 1518, "name": "IndexAccess", "src": "2012:25:6" } ], - "id": 1496, + "id": 1519, "name": "MemberAccess", "src": "2012:33:6" } ], - "id": 1497, + "id": 1520, "name": "TupleExpression", "src": "1853:202:6" } ], - "id": 1498, + "id": 1521, "name": "Return", "src": "1847:208:6" } ], - "id": 1499, + "id": 1522, "name": "Block", "src": "1837:225:6" } ], - "id": 1500, + "id": 1523, "name": "FunctionDefinition", "src": "1708:354:6" }, @@ -2360,7 +2360,7 @@ ], "name": "getCredentialTxnKey", "payable": false, - "scope": 1580, + "scope": 1603, "stateMutability": "view", "superFunction": null, "visibility": "public" @@ -2372,7 +2372,7 @@ "attributes": { "constant": false, "name": "_issuer", - "scope": 1516, + "scope": 1539, "stateVariable": false, "storageLocation": "default", "type": "address", @@ -2385,12 +2385,12 @@ "name": "address", "type": "address" }, - "id": 1501, + "id": 1524, "name": "ElementaryTypeName", "src": "2229:7:6" } ], - "id": 1502, + "id": 1525, "name": "VariableDeclaration", "src": "2229:15:6" }, @@ -2398,7 +2398,7 @@ "attributes": { "constant": false, "name": "_msgData", - "scope": 1516, + "scope": 1539, "stateVariable": false, "storageLocation": "default", "type": "bytes memory", @@ -2411,17 +2411,17 @@ "name": "bytes", "type": "bytes storage pointer" }, - "id": 1503, + "id": 1526, "name": "ElementaryTypeName", "src": "2246:5:6" } ], - "id": 1504, + "id": 1527, "name": "VariableDeclaration", "src": "2246:14:6" } ], - "id": 1505, + "id": 1528, "name": "ParameterList", "src": "2228:33:6" }, @@ -2431,7 +2431,7 @@ "attributes": { "constant": false, "name": "key", - "scope": 1516, + "scope": 1539, "stateVariable": false, "storageLocation": "default", "type": "bytes32", @@ -2444,17 +2444,17 @@ "name": "bytes32", "type": "bytes32" }, - "id": 1506, + "id": 1529, "name": "ElementaryTypeName", "src": "2282:7:6" } ], - "id": 1507, + "id": 1530, "name": "VariableDeclaration", "src": "2282:11:6" } ], - "id": 1508, + "id": 1531, "name": "ParameterList", "src": "2281:13:6" }, @@ -2462,7 +2462,7 @@ "children": [ { "attributes": { - "functionReturnParameters": 1508 + "functionReturnParameters": 1531 }, "children": [ { @@ -2499,11 +2499,11 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 2473, + "referencedDeclaration": 2496, "type": "function () pure returns (bytes32)", "value": "keccak256" }, - "id": 1509, + "id": 1532, "name": "Identifier", "src": "2312:9:6" }, @@ -2513,11 +2513,11 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1502, + "referencedDeclaration": 1525, "type": "address", "value": "_issuer" }, - "id": 1510, + "id": 1533, "name": "Identifier", "src": "2322:7:6" }, @@ -2527,11 +2527,11 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1504, + "referencedDeclaration": 1527, "type": "bytes memory", "value": "_msgData" }, - "id": 1511, + "id": 1534, "name": "Identifier", "src": "2331:8:6" }, @@ -2541,31 +2541,31 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1398, + "referencedDeclaration": 1421, "type": "uint256", "value": "nonce" }, - "id": 1512, + "id": 1535, "name": "Identifier", "src": "2341:5:6" } ], - "id": 1513, + "id": 1536, "name": "FunctionCall", "src": "2312:35:6" } ], - "id": 1514, + "id": 1537, "name": "Return", "src": "2305:42:6" } ], - "id": 1515, + "id": 1538, "name": "Block", "src": "2295:59:6" } ], - "id": 1516, + "id": 1539, "name": "FunctionDefinition", "src": "2200:154:6" }, @@ -2582,7 +2582,7 @@ "constant": false, "indexed": false, "name": "_txnKey", - "scope": 1520, + "scope": 1543, "stateVariable": false, "storageLocation": "default", "type": "bytes32", @@ -2595,22 +2595,22 @@ "name": "bytes32", "type": "bytes32" }, - "id": 1517, + "id": 1540, "name": "ElementaryTypeName", "src": "2384:7:6" } ], - "id": 1518, + "id": 1541, "name": "VariableDeclaration", "src": "2384:15:6" } ], - "id": 1519, + "id": 1542, "name": "ParameterList", "src": "2383:17:6" } ], - "id": 1520, + "id": 1543, "name": "EventDefinition", "src": "2360:41:6" }, @@ -2621,7 +2621,7 @@ "isConstructor": false, "name": "revoke", "payable": false, - "scope": 1580, + "scope": 1603, "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" @@ -2633,7 +2633,7 @@ "attributes": { "constant": false, "name": "_txnKey", - "scope": 1541, + "scope": 1564, "stateVariable": false, "storageLocation": "default", "type": "bytes32", @@ -2646,17 +2646,17 @@ "name": "bytes32", "type": "bytes32" }, - "id": 1521, + "id": 1544, "name": "ElementaryTypeName", "src": "2458:7:6" } ], - "id": 1522, + "id": 1545, "name": "VariableDeclaration", "src": "2458:15:6" } ], - "id": 1523, + "id": 1546, "name": "ParameterList", "src": "2457:17:6" }, @@ -2667,7 +2667,7 @@ ] }, "children": [], - "id": 1528, + "id": 1551, "name": "ParameterList", "src": "2505:0:6" }, @@ -2683,7 +2683,7 @@ "type": "modifier (address)", "value": "authorized" }, - "id": 1524, + "id": 1547, "name": "Identifier", "src": "2482:10:6" }, @@ -2705,21 +2705,21 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 2479, + "referencedDeclaration": 2502, "type": "msg", "value": "msg" }, - "id": 1525, + "id": 1548, "name": "Identifier", "src": "2493:3:6" } ], - "id": 1526, + "id": 1549, "name": "MemberAccess", "src": "2493:10:6" } ], - "id": 1527, + "id": 1550, "name": "ModifierInvocation", "src": "2482:22:6" }, @@ -2746,7 +2746,7 @@ "isPure": false, "lValueRequested": true, "member_name": "revoked", - "referencedDeclaration": 1391, + "referencedDeclaration": 1414, "type": "bool" }, "children": [ @@ -2766,11 +2766,11 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1396, + "referencedDeclaration": 1419, "type": "mapping(bytes32 => struct TransactionManager.Transaction storage ref)", "value": "credentialTxnMap" }, - "id": 1529, + "id": 1552, "name": "Identifier", "src": "2515:16:6" }, @@ -2780,21 +2780,21 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1522, + "referencedDeclaration": 1545, "type": "bytes32", "value": "_txnKey" }, - "id": 1530, + "id": 1553, "name": "Identifier", "src": "2532:7:6" } ], - "id": 1531, + "id": 1554, "name": "IndexAccess", "src": "2515:25:6" } ], - "id": 1532, + "id": 1555, "name": "MemberAccess", "src": "2515:33:6" }, @@ -2811,17 +2811,17 @@ "type": "bool", "value": "true" }, - "id": 1533, + "id": 1556, "name": "Literal", "src": "2551:4:6" } ], - "id": 1534, + "id": 1557, "name": "Assignment", "src": "2515:40:6" } ], - "id": 1535, + "id": 1558, "name": "ExpressionStatement", "src": "2515:40:6" }, @@ -2853,11 +2853,11 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1520, + "referencedDeclaration": 1543, "type": "function (bytes32)", "value": "CredentialRevoked" }, - "id": 1536, + "id": 1559, "name": "Identifier", "src": "2565:17:6" }, @@ -2867,31 +2867,31 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1522, + "referencedDeclaration": 1545, "type": "bytes32", "value": "_txnKey" }, - "id": 1537, + "id": 1560, "name": "Identifier", "src": "2583:7:6" } ], - "id": 1538, + "id": 1561, "name": "FunctionCall", "src": "2565:26:6" } ], - "id": 1539, + "id": 1562, "name": "ExpressionStatement", "src": "2565:26:6" } ], - "id": 1540, + "id": 1563, "name": "Block", "src": "2505:93:6" } ], - "id": 1541, + "id": 1564, "name": "FunctionDefinition", "src": "2442:156:6" }, @@ -2908,7 +2908,7 @@ "constant": false, "indexed": false, "name": "_txnKey", - "scope": 1545, + "scope": 1568, "stateVariable": false, "storageLocation": "default", "type": "bytes32", @@ -2921,22 +2921,22 @@ "name": "bytes32", "type": "bytes32" }, - "id": 1542, + "id": 1565, "name": "ElementaryTypeName", "src": "2630:7:6" } ], - "id": 1543, + "id": 1566, "name": "VariableDeclaration", "src": "2630:15:6" } ], - "id": 1544, + "id": 1567, "name": "ParameterList", "src": "2629:17:6" } ], - "id": 1545, + "id": 1568, "name": "EventDefinition", "src": "2604:43:6" }, @@ -2947,7 +2947,7 @@ "isConstructor": false, "name": "unRevoke", "payable": false, - "scope": 1580, + "scope": 1603, "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" @@ -2959,7 +2959,7 @@ "attributes": { "constant": false, "name": "_txnKey", - "scope": 1566, + "scope": 1589, "stateVariable": false, "storageLocation": "default", "type": "bytes32", @@ -2972,17 +2972,17 @@ "name": "bytes32", "type": "bytes32" }, - "id": 1546, + "id": 1569, "name": "ElementaryTypeName", "src": "2708:7:6" } ], - "id": 1547, + "id": 1570, "name": "VariableDeclaration", "src": "2708:15:6" } ], - "id": 1548, + "id": 1571, "name": "ParameterList", "src": "2707:17:6" }, @@ -2993,7 +2993,7 @@ ] }, "children": [], - "id": 1553, + "id": 1576, "name": "ParameterList", "src": "2755:0:6" }, @@ -3009,7 +3009,7 @@ "type": "modifier (address)", "value": "authorized" }, - "id": 1549, + "id": 1572, "name": "Identifier", "src": "2732:10:6" }, @@ -3031,21 +3031,21 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 2479, + "referencedDeclaration": 2502, "type": "msg", "value": "msg" }, - "id": 1550, + "id": 1573, "name": "Identifier", "src": "2743:3:6" } ], - "id": 1551, + "id": 1574, "name": "MemberAccess", "src": "2743:10:6" } ], - "id": 1552, + "id": 1575, "name": "ModifierInvocation", "src": "2732:22:6" }, @@ -3072,7 +3072,7 @@ "isPure": false, "lValueRequested": true, "member_name": "revoked", - "referencedDeclaration": 1391, + "referencedDeclaration": 1414, "type": "bool" }, "children": [ @@ -3092,11 +3092,11 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1396, + "referencedDeclaration": 1419, "type": "mapping(bytes32 => struct TransactionManager.Transaction storage ref)", "value": "credentialTxnMap" }, - "id": 1554, + "id": 1577, "name": "Identifier", "src": "2765:16:6" }, @@ -3106,21 +3106,21 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1547, + "referencedDeclaration": 1570, "type": "bytes32", "value": "_txnKey" }, - "id": 1555, + "id": 1578, "name": "Identifier", "src": "2782:7:6" } ], - "id": 1556, + "id": 1579, "name": "IndexAccess", "src": "2765:25:6" } ], - "id": 1557, + "id": 1580, "name": "MemberAccess", "src": "2765:33:6" }, @@ -3137,17 +3137,17 @@ "type": "bool", "value": "false" }, - "id": 1558, + "id": 1581, "name": "Literal", "src": "2801:5:6" } ], - "id": 1559, + "id": 1582, "name": "Assignment", "src": "2765:41:6" } ], - "id": 1560, + "id": 1583, "name": "ExpressionStatement", "src": "2765:41:6" }, @@ -3179,11 +3179,11 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1545, + "referencedDeclaration": 1568, "type": "function (bytes32)", "value": "CredentialUnRevoked" }, - "id": 1561, + "id": 1584, "name": "Identifier", "src": "2816:19:6" }, @@ -3193,31 +3193,31 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1547, + "referencedDeclaration": 1570, "type": "bytes32", "value": "_txnKey" }, - "id": 1562, + "id": 1585, "name": "Identifier", "src": "2836:7:6" } ], - "id": 1563, + "id": 1586, "name": "FunctionCall", "src": "2816:28:6" } ], - "id": 1564, + "id": 1587, "name": "ExpressionStatement", "src": "2816:28:6" } ], - "id": 1565, + "id": 1588, "name": "Block", "src": "2755:96:6" } ], - "id": 1566, + "id": 1589, "name": "FunctionDefinition", "src": "2690:161:6" }, @@ -3231,7 +3231,7 @@ ], "name": "isRevoked", "payable": false, - "scope": 1580, + "scope": 1603, "stateMutability": "view", "superFunction": null, "visibility": "public" @@ -3243,7 +3243,7 @@ "attributes": { "constant": false, "name": "_txnKey", - "scope": 1579, + "scope": 1602, "stateVariable": false, "storageLocation": "default", "type": "bytes32", @@ -3256,17 +3256,17 @@ "name": "bytes32", "type": "bytes32" }, - "id": 1567, + "id": 1590, "name": "ElementaryTypeName", "src": "2923:7:6" } ], - "id": 1568, + "id": 1591, "name": "VariableDeclaration", "src": "2923:15:6" } ], - "id": 1569, + "id": 1592, "name": "ParameterList", "src": "2922:17:6" }, @@ -3276,7 +3276,7 @@ "attributes": { "constant": false, "name": "c", - "scope": 1579, + "scope": 1602, "stateVariable": false, "storageLocation": "default", "type": "bool", @@ -3289,17 +3289,17 @@ "name": "bool", "type": "bool" }, - "id": 1570, + "id": 1593, "name": "ElementaryTypeName", "src": "2964:4:6" } ], - "id": 1571, + "id": 1594, "name": "VariableDeclaration", "src": "2964:6:6" } ], - "id": 1572, + "id": 1595, "name": "ParameterList", "src": "2963:8:6" }, @@ -3307,7 +3307,7 @@ "children": [ { "attributes": { - "functionReturnParameters": 1572 + "functionReturnParameters": 1595 }, "children": [ { @@ -3318,7 +3318,7 @@ "isPure": false, "lValueRequested": false, "member_name": "revoked", - "referencedDeclaration": 1391, + "referencedDeclaration": 1414, "type": "bool" }, "children": [ @@ -3338,11 +3338,11 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1396, + "referencedDeclaration": 1419, "type": "mapping(bytes32 => struct TransactionManager.Transaction storage ref)", "value": "credentialTxnMap" }, - "id": 1573, + "id": 1596, "name": "Identifier", "src": "2989:16:6" }, @@ -3352,46 +3352,46 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1568, + "referencedDeclaration": 1591, "type": "bytes32", "value": "_txnKey" }, - "id": 1574, + "id": 1597, "name": "Identifier", "src": "3006:7:6" } ], - "id": 1575, + "id": 1598, "name": "IndexAccess", "src": "2989:25:6" } ], - "id": 1576, + "id": 1599, "name": "MemberAccess", "src": "2989:33:6" } ], - "id": 1577, + "id": 1600, "name": "Return", "src": "2982:40:6" } ], - "id": 1578, + "id": 1601, "name": "Block", "src": "2972:57:6" } ], - "id": 1579, + "id": 1602, "name": "FunctionDefinition", "src": "2904:125:6" } ], - "id": 1580, + "id": 1603, "name": "ContractDefinition", "src": "80:2951:6" } ], - "id": 1581, + "id": 1604, "name": "SourceUnit", "src": "0:3032:6" }, @@ -3401,5 +3401,5 @@ }, "networks": {}, "schemaVersion": "1.0.1", - "updatedAt": "2018-01-14T11:06:54.642Z" + "updatedAt": "2018-01-16T07:16:25.772Z" } \ No newline at end of file diff --git a/build/contracts/Verifier.json b/build/contracts/Verifier.json index 79a7d71..b653cbd 100644 --- a/build/contracts/Verifier.json +++ b/build/contracts/Verifier.json @@ -653,8 +653,8 @@ "type": "event" } ], - "bytecode": "0x6060604052341561000f57600080fd5b60405160208061336883398101604052808051906020019091905050808080806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050600060078190555050506132df806100896000396000f300606060405260043610610149576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063029a28581461014e5780630decfdea146101d75780631041eb9614610267578063164f0a4e146102f75780631ddb6af61461038f57806324ddd51a1461050f5780633557b6c3146105385780633b57391a1461059b5780634294857f146105d45780635629aec91461061357806359c293f1146106875780635c9d3a94146106c657806372ee19a2146107ec57806377002fcf146108615780637c59fda014610a78578063a5aef15b14610aa1578063affed0e014610ac8578063b610922114610af1578063b75c7dc614610b66578063be47aa0914610b8d578063c1eabde914610bc6578063d8c0941b14610c3f578063eb92948114610d09578063f851a44014610da1578063f9afc24214610df6575b600080fd5b341561015957600080fd5b6101d560048080356000191690602001909190803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050610e81565b005b34156101e257600080fd5b6101fc6004808035600019169060200190919050506113f1565b60405180856000191660001916815260200184600019166000191681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018215151515815260200194505050505060405180910390f35b341561027257600080fd5b61028c60048080356000191690602001909190505061144e565b60405180856000191660001916815260200184600019166000191681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018215151515815260200194505050505060405180910390f35b341561030257600080fd5b610371600480803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061150c565b60405180826000191660001916815260200191505060405180910390f35b341561039a57600080fd5b6104f1600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506115bc565b60405180826000191660001916815260200191505060405180910390f35b341561051a57600080fd5b6105226117b2565b6040518082815260200191505060405180910390f35b341561054357600080fd5b61055960048080359060200190919050506117c2565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156105a657600080fd5b6105d2600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061189f565b005b34156105df57600080fd5b6105f9600480803560001916906020019091905050611b23565b604051808215151515815260200191505060405180910390f35b341561061e57600080fd5b61065760048080356000191690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611b58565b60405180841515151581526020018315151515815260200182151515158152602001935050505060405180910390f35b341561069257600080fd5b6106a86004808035906020019091905050611cbf565b60405180826000191660001916815260200191505060405180910390f35b34156106d157600080fd5b6107ea600480803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050611ce6565b005b34156107f757600080fd5b610847600480803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050612075565b604051808215151515815260200191505060405180910390f35b341561086c57600080fd5b6108866004808035600019169060200190919050506120e5565b604051808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001806020018060200180602001858103855289818151815260200191508051906020019080838360005b838110156109045780820151818401526020810190506108e9565b50505050905090810190601f1680156109315780820380516001836020036101000a031916815260200191505b50858103845288818151815260200191508051906020019080838360005b8381101561096a57808201518184015260208101905061094f565b50505050905090810190601f1680156109975780820380516001836020036101000a031916815260200191505b50858103835287818151815260200191508051906020019080838360005b838110156109d05780820151818401526020810190506109b5565b50505050905090810190601f1680156109fd5780820380516001836020036101000a031916815260200191505b50858103825286818151815260200191508051906020019080838360005b83811015610a36578082015181840152602081019050610a1b565b50505050905090810190601f168015610a635780820380516001836020036101000a031916815260200191505b50995050505050505050505060405180910390f35b3415610a8357600080fd5b610a8b6124b9565b6040518082815260200191505060405180910390f35b3415610aac57600080fd5b610ac66004808035600019169060200190919050506124c6565b005b3415610ad357600080fd5b610adb612668565b6040518082815260200191505060405180910390f35b3415610afc57600080fd5b610b4c600480803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190505061266e565b604051808215151515815260200191505060405180910390f35b3415610b7157600080fd5b610b8b6004808035600019169060200190919050506129b8565b005b3415610b9857600080fd5b610bc4600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612b5a565b005b3415610bd157600080fd5b610c21600480803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050612ced565b60405180826000191660001916815260200191505060405180910390f35b3415610c4a57600080fd5b610c8360048080356000191690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612d59565b604051808315151515815260200180602001828103825283818151815260200191508051906020019080838360005b83811015610ccd578082015181840152602081019050610cb2565b50505050905090810190601f168015610cfa5780820380516001836020036101000a031916815260200191505b50935050505060405180910390f35b3415610d1457600080fd5b610d83600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050612f61565b60405180826000191660001916815260200191505060405180910390f35b3415610dac57600080fd5b610db461301b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3415610e0157600080fd5b610e2d600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050613040565b604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200182151515158152602001935050505060405180910390f35b6000610e8b613097565b60003360008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480610f375750600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160009054906101000a900460ff165b90507f7fca019a0a52664785803f352d793a992f66c4affa261b3daf127976e7ad67998282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a1801515610fb457600080fd5b600760008154809291906001019190505550610fcf86612ced565b945060036000016000866000191660001916815260200190815260200160002060a060405190810160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156110ea5780601f106110bf576101008083540402835291602001916110ea565b820191906000526020600020905b8154815290600101906020018083116110cd57829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561118c5780601f106111615761010080835404028352916020019161118c565b820191906000526020600020905b81548152906001019060200180831161116f57829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561122e5780601f106112035761010080835404028352916020019161122e565b820191906000526020600020905b81548152906001019060200180831161121157829003601f168201915b50505050508152602001600482018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156112d05780601f106112a5576101008083540402835291602001916112d0565b820191906000526020600020905b8154815290600101906020018083116112b357829003601f168201915b50505050508152505093506112fd846000015185602001518660400151876060015188608001518c6115bc565b925060806040519081016040528089600019168152602001846000191681526020018873ffffffffffffffffffffffffffffffffffffffff16815260200160001515815250600660008a60001916600019168152602001908152602001600020600082015181600001906000191690556020820151816001019060001916905560408201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060608201518160020160146101000a81548160ff0219169083151502179055509050505050505050505050565b60066020528060005260406000206000915090508060000154908060010154908060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060020160149054906101000a900460ff16905084565b600080600080600660008660001916600019168152602001908152602001600020600001546006600087600019166000191681526020019081526020016000206001015460066000886000191660001916815260200190815260200160002060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660066000896000191660001916815260200190815260200160002060020160149054906101000a900460ff1693509350935093509193509193565b600082826040518083805190602001908083835b6020831015156115455780518252602082019150602081019050602083039250611520565b6001836020036101000a0380198251168184511680821785525050505050509050018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c01000000000000000000000000028152601401925050506040518091039020905092915050565b6000868686868686604051808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140186805190602001908083835b60208310151561163a5780518252602082019150602081019050602083039250611615565b6001836020036101000a03801982511681845116808217855250505050505090500185805190602001908083835b60208310151561168d5780518252602082019150602081019050602083039250611668565b6001836020036101000a03801982511681845116808217855250505050505090500184805190602001908083835b6020831015156116e057805182526020820191506020810190506020830392506116bb565b6001836020036101000a03801982511681845116808217855250505050505090500183805190602001908083835b602083101515611733578051825260208201915060208101905060208303925061170e565b6001836020036101000a0380198251168184511680821785525050505050509050018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014019650505050505050604051809103902090509695505050505050565b6000600360020180549050905090565b6000600160006002848154811015156117d757fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160009054906101000a900460ff16156118955760028281548110151561186257fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905061189a565b600090505b919050565b3360008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161490507f7fca019a0a52664785803f352d793a992f66c4affa261b3daf127976e7ad67998282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a180151561196f57600080fd5b6060604051908101604052808473ffffffffffffffffffffffffffffffffffffffff1681526020016001600280548060010182816119ad91906130f5565b9160005260206000209001600088909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555003815260200160011515815250600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506020820151816001015560408201518160020160006101000a81548160ff0219169083151502179055509050507f7fd215c956537f33ef9064c457003d82df8562a7b03e1f896c0b39c7abc8355883604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1505050565b600060066000836000191660001916815260200190815260200160002060020160149054906101000a900460ff169050919050565b6000806000806000806000806000611b6f8b61144e565b9550955095509550600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415611bbc576001600080985098509850611cb2565b8215611bd15782600080985098509850611cb2565b8991508173ffffffffffffffffffffffffffffffffffffffff16636bcdaa33876000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b1515611c5357600080fd5b6102c65a03f11515611c6457600080fd5b5050506040518051905090508285600019168260001916148573ffffffffffffffffffffffffffffffffffffffff168c73ffffffffffffffffffffffffffffffffffffffff16149850985098505b5050505050509250925092565b6000600360020182815481101515611cd357fe5b9060005260206000209001549050919050565b600080611cf1613097565b3360008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480611d9b5750600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160009054906101000a900460ff165b90507f7fca019a0a52664785803f352d793a992f66c4affa261b3daf127976e7ad67998282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a1801515611e1857600080fd5b87611e2281612075565b1515611e2d57600080fd5b611e3689612ced565b9550600160036002018054806001018281611e519190613121565b916000526020600020900160008990919091509060001916905503945060a0604051908101604052803073ffffffffffffffffffffffffffffffffffffffff1681526020018b81526020018a81526020018981526020018881525093508360036000016000886000191660001916815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506020820151816001019080519060200190611f3092919061314d565b506040820151816002019080519060200190611f4d92919061314d565b506060820151816003019080519060200190611f6a92919061314d565b506080820151816004019080519060200190611f8792919061314d565b509050508460036001016000886000191660001916815260200190815260200160002081905550836000015173ffffffffffffffffffffffffffffffffffffffff167fde74f67f0ccaf379531f5b3884d0afb87e86192a992d99e7222390f8870a0b5385604001516040518080602001828103825283818151815260200191508051906020019080838360005b8381101561202f578082015181840152602081019050612014565b50505050905090810190601f16801561205c5780820380516001836020036101000a031916815260200191505b509250505060405180910390a250505050505050505050565b60008061208183612ced565b9050600060036002018054905014806120dd575080600019166003600201600360010160008460001916600019168152602001908152602001600020548154811015156120ca57fe5b9060005260206000209001546000191614155b915050919050565b60006120ef6131cd565b6120f76131cd565b6120ff6131cd565b6121076131cd565b61210f613097565b86600060036002018054905011801561216a5750806000191660036002016003600101600084600019166000191681526020019081526020016000205481548110151561215857fe5b90600052602060002090015460001916145b151561217557600080fd5b60036000016000896000191660001916815260200190815260200160002060a060405190810160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561228e5780601f106122635761010080835404028352916020019161228e565b820191906000526020600020905b81548152906001019060200180831161227157829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156123305780601f1061230557610100808354040283529160200191612330565b820191906000526020600020905b81548152906001019060200180831161231357829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156123d25780601f106123a7576101008083540402835291602001916123d2565b820191906000526020600020905b8154815290600101906020018083116123b557829003601f168201915b50505050508152602001600482018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156124745780601f1061244957610100808354040283529160200191612474565b820191906000526020600020905b81548152906001019060200180831161245757829003601f168201915b50505050508152505091508160000151826020015183604001518460600151856080015183935082925081915080905096509650965096509650505091939590929450565b6000600280549050905090565b3360008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614806125705750600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160009054906101000a900460ff165b90507f7fca019a0a52664785803f352d793a992f66c4affa261b3daf127976e7ad67998282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a18015156125ed57600080fd5b600060066000856000191660001916815260200190815260200160002060020160146101000a81548160ff0219169083151502179055507fd1e55fd73bb60d490f023f5239b9c0ca41f4503cca514ab5c7c8649a188afdd38360405180826000191660001916815260200191505060405180910390a1505050565b60075481565b6000806000803360008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16148061271e5750600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160009054906101000a900460ff165b90507f7fca019a0a52664785803f352d793a992f66c4affa261b3daf127976e7ad67998282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a180151561279b57600080fd5b6127a487612ced565b945060036001016000866000191660001916815260200190815260200160002054935060036002016001600360020180549050038154811015156127e457fe5b906000526020600020900154925083600360010160008560001916600019168152602001908152602001600020819055508260036002018581548110151561282857fe5b90600052602060002090018160001916905550600360020180548091906001900361285391906131e1565b50600360000160008660001916600019168152602001908152602001600020600080820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556001820160006128aa919061320d565b6002820160006128ba919061320d565b6003820160006128ca919061320d565b6004820160006128da919061320d565b5050600360010160008660001916600019168152602001908152602001600020600090557f25011d6c52f8dd436cbad877a1e1bfa99b3fc7b3df1c4f7b68d6f6403e943a51876003600201805490506040518080602001838152602001828103825284818151815260200191508051906020019080838360005b8381101561296f578082015181840152602081019050612954565b50505050905090810190601f16801561299c5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a1600195505050505050919050565b3360008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480612a625750600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160009054906101000a900460ff165b90507f7fca019a0a52664785803f352d793a992f66c4affa261b3daf127976e7ad67998282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a1801515612adf57600080fd5b600160066000856000191660001916815260200190815260200160002060020160146101000a81548160ff0219169083151502179055507f3cc2375f3fc7711ba27361cde93880f578742f9f050acee766bed662d117ba728360405180826000191660001916815260200191505060405180910390a1505050565b3360008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161490507f7fca019a0a52664785803f352d793a992f66c4affa261b3daf127976e7ad67998282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a1801515612c2a57600080fd5b6000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160006101000a81548160ff0219169083151502179055507f56a53756e1db2ff35a90edee9bd205b4b2bb8633ee3d6a53a5e85d5b46f0e9dc83604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1505050565b6000816040518082805190602001908083835b602083101515612d255780518252602082019150602081019050602083039250612d00565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209050919050565b6000612d636131cd565b6000806000612d728787611b58565b9250925092508215612de9576000606060405190810160405280602681526020017f496e76616c69642063726564656e7469616c3a2063726564656e7469616c207281526020017f65766f6b6564000000000000000000000000000000000000000000000000000081525080905094509450612f57565b801515612e805780608060405190810160405280604581526020017f496e76616c696420726563697069656e743a20726563697069656e7420646f6581526020017f73206e6f74206d61746368206f726967696e616c207472616e73616374696f6e81526020017f206461746100000000000000000000000000000000000000000000000000000081525080905094509450612f57565b811515612f175781608060405190810160405280605381526020017f496e76616c6964206461746120696e746567726974793a206461746120696e2081526020017f63726564656e7469616c20646f6573206e6f74206d61746368206f726967696e81526020017f616c207472616e73616374696f6e20646174610000000000000000000000000081525080905094509450612f57565b60016040805190810160405280601381526020017f43726564656e7469616c2069732076616c696400000000000000000000000000815250809050945094505b5050509250929050565b60008282600754604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140183805190602001908083835b602083101515612fde5780518252602082019150602081019050602083039250612fb9565b6001836020036101000a03801982511681845116808217855250505050505090500182815260200193505050506040518091039020905092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60016020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154908060020160009054906101000a900460ff16905083565b60a060405190810160405280600073ffffffffffffffffffffffffffffffffffffffff1681526020016130c8613255565b81526020016130d5613255565b81526020016130e2613255565b81526020016130ef613255565b81525090565b81548183558181151161311c5781836000526020600020918201910161311b9190613269565b5b505050565b81548183558181151161314857818360005260206000209182019101613147919061328e565b5b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061318e57805160ff19168380011785556131bc565b828001600101855582156131bc579182015b828111156131bb5782518255916020019190600101906131a0565b5b5090506131c99190613269565b5090565b602060405190810160405280600081525090565b81548183558181151161320857818360005260206000209182019101613207919061328e565b5b505050565b50805460018160011615610100020316600290046000825580601f106132335750613252565b601f0160209004906000526020600020908101906132519190613269565b5b50565b602060405190810160405280600081525090565b61328b91905b8082111561328757600081600090555060010161326f565b5090565b90565b6132b091905b808211156132ac576000816000905550600101613294565b5090565b905600a165627a7a723058205a1a4be6305a6978dfed070ee45d079cae0527bdd59398cda6622bb24772135a0029", - "deployedBytecode": "0x606060405260043610610149576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063029a28581461014e5780630decfdea146101d75780631041eb9614610267578063164f0a4e146102f75780631ddb6af61461038f57806324ddd51a1461050f5780633557b6c3146105385780633b57391a1461059b5780634294857f146105d45780635629aec91461061357806359c293f1146106875780635c9d3a94146106c657806372ee19a2146107ec57806377002fcf146108615780637c59fda014610a78578063a5aef15b14610aa1578063affed0e014610ac8578063b610922114610af1578063b75c7dc614610b66578063be47aa0914610b8d578063c1eabde914610bc6578063d8c0941b14610c3f578063eb92948114610d09578063f851a44014610da1578063f9afc24214610df6575b600080fd5b341561015957600080fd5b6101d560048080356000191690602001909190803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050610e81565b005b34156101e257600080fd5b6101fc6004808035600019169060200190919050506113f1565b60405180856000191660001916815260200184600019166000191681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018215151515815260200194505050505060405180910390f35b341561027257600080fd5b61028c60048080356000191690602001909190505061144e565b60405180856000191660001916815260200184600019166000191681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018215151515815260200194505050505060405180910390f35b341561030257600080fd5b610371600480803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061150c565b60405180826000191660001916815260200191505060405180910390f35b341561039a57600080fd5b6104f1600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506115bc565b60405180826000191660001916815260200191505060405180910390f35b341561051a57600080fd5b6105226117b2565b6040518082815260200191505060405180910390f35b341561054357600080fd5b61055960048080359060200190919050506117c2565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156105a657600080fd5b6105d2600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061189f565b005b34156105df57600080fd5b6105f9600480803560001916906020019091905050611b23565b604051808215151515815260200191505060405180910390f35b341561061e57600080fd5b61065760048080356000191690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611b58565b60405180841515151581526020018315151515815260200182151515158152602001935050505060405180910390f35b341561069257600080fd5b6106a86004808035906020019091905050611cbf565b60405180826000191660001916815260200191505060405180910390f35b34156106d157600080fd5b6107ea600480803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050611ce6565b005b34156107f757600080fd5b610847600480803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050612075565b604051808215151515815260200191505060405180910390f35b341561086c57600080fd5b6108866004808035600019169060200190919050506120e5565b604051808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001806020018060200180602001858103855289818151815260200191508051906020019080838360005b838110156109045780820151818401526020810190506108e9565b50505050905090810190601f1680156109315780820380516001836020036101000a031916815260200191505b50858103845288818151815260200191508051906020019080838360005b8381101561096a57808201518184015260208101905061094f565b50505050905090810190601f1680156109975780820380516001836020036101000a031916815260200191505b50858103835287818151815260200191508051906020019080838360005b838110156109d05780820151818401526020810190506109b5565b50505050905090810190601f1680156109fd5780820380516001836020036101000a031916815260200191505b50858103825286818151815260200191508051906020019080838360005b83811015610a36578082015181840152602081019050610a1b565b50505050905090810190601f168015610a635780820380516001836020036101000a031916815260200191505b50995050505050505050505060405180910390f35b3415610a8357600080fd5b610a8b6124b9565b6040518082815260200191505060405180910390f35b3415610aac57600080fd5b610ac66004808035600019169060200190919050506124c6565b005b3415610ad357600080fd5b610adb612668565b6040518082815260200191505060405180910390f35b3415610afc57600080fd5b610b4c600480803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190505061266e565b604051808215151515815260200191505060405180910390f35b3415610b7157600080fd5b610b8b6004808035600019169060200190919050506129b8565b005b3415610b9857600080fd5b610bc4600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612b5a565b005b3415610bd157600080fd5b610c21600480803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050612ced565b60405180826000191660001916815260200191505060405180910390f35b3415610c4a57600080fd5b610c8360048080356000191690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612d59565b604051808315151515815260200180602001828103825283818151815260200191508051906020019080838360005b83811015610ccd578082015181840152602081019050610cb2565b50505050905090810190601f168015610cfa5780820380516001836020036101000a031916815260200191505b50935050505060405180910390f35b3415610d1457600080fd5b610d83600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050612f61565b60405180826000191660001916815260200191505060405180910390f35b3415610dac57600080fd5b610db461301b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3415610e0157600080fd5b610e2d600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050613040565b604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200182151515158152602001935050505060405180910390f35b6000610e8b613097565b60003360008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480610f375750600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160009054906101000a900460ff165b90507f7fca019a0a52664785803f352d793a992f66c4affa261b3daf127976e7ad67998282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a1801515610fb457600080fd5b600760008154809291906001019190505550610fcf86612ced565b945060036000016000866000191660001916815260200190815260200160002060a060405190810160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156110ea5780601f106110bf576101008083540402835291602001916110ea565b820191906000526020600020905b8154815290600101906020018083116110cd57829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561118c5780601f106111615761010080835404028352916020019161118c565b820191906000526020600020905b81548152906001019060200180831161116f57829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561122e5780601f106112035761010080835404028352916020019161122e565b820191906000526020600020905b81548152906001019060200180831161121157829003601f168201915b50505050508152602001600482018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156112d05780601f106112a5576101008083540402835291602001916112d0565b820191906000526020600020905b8154815290600101906020018083116112b357829003601f168201915b50505050508152505093506112fd846000015185602001518660400151876060015188608001518c6115bc565b925060806040519081016040528089600019168152602001846000191681526020018873ffffffffffffffffffffffffffffffffffffffff16815260200160001515815250600660008a60001916600019168152602001908152602001600020600082015181600001906000191690556020820151816001019060001916905560408201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060608201518160020160146101000a81548160ff0219169083151502179055509050505050505050505050565b60066020528060005260406000206000915090508060000154908060010154908060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060020160149054906101000a900460ff16905084565b600080600080600660008660001916600019168152602001908152602001600020600001546006600087600019166000191681526020019081526020016000206001015460066000886000191660001916815260200190815260200160002060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660066000896000191660001916815260200190815260200160002060020160149054906101000a900460ff1693509350935093509193509193565b600082826040518083805190602001908083835b6020831015156115455780518252602082019150602081019050602083039250611520565b6001836020036101000a0380198251168184511680821785525050505050509050018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c01000000000000000000000000028152601401925050506040518091039020905092915050565b6000868686868686604051808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140186805190602001908083835b60208310151561163a5780518252602082019150602081019050602083039250611615565b6001836020036101000a03801982511681845116808217855250505050505090500185805190602001908083835b60208310151561168d5780518252602082019150602081019050602083039250611668565b6001836020036101000a03801982511681845116808217855250505050505090500184805190602001908083835b6020831015156116e057805182526020820191506020810190506020830392506116bb565b6001836020036101000a03801982511681845116808217855250505050505090500183805190602001908083835b602083101515611733578051825260208201915060208101905060208303925061170e565b6001836020036101000a0380198251168184511680821785525050505050509050018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014019650505050505050604051809103902090509695505050505050565b6000600360020180549050905090565b6000600160006002848154811015156117d757fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160009054906101000a900460ff16156118955760028281548110151561186257fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905061189a565b600090505b919050565b3360008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161490507f7fca019a0a52664785803f352d793a992f66c4affa261b3daf127976e7ad67998282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a180151561196f57600080fd5b6060604051908101604052808473ffffffffffffffffffffffffffffffffffffffff1681526020016001600280548060010182816119ad91906130f5565b9160005260206000209001600088909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555003815260200160011515815250600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506020820151816001015560408201518160020160006101000a81548160ff0219169083151502179055509050507f7fd215c956537f33ef9064c457003d82df8562a7b03e1f896c0b39c7abc8355883604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1505050565b600060066000836000191660001916815260200190815260200160002060020160149054906101000a900460ff169050919050565b6000806000806000806000806000611b6f8b61144e565b9550955095509550600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415611bbc576001600080985098509850611cb2565b8215611bd15782600080985098509850611cb2565b8991508173ffffffffffffffffffffffffffffffffffffffff16636bcdaa33876000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b1515611c5357600080fd5b6102c65a03f11515611c6457600080fd5b5050506040518051905090508285600019168260001916148573ffffffffffffffffffffffffffffffffffffffff168c73ffffffffffffffffffffffffffffffffffffffff16149850985098505b5050505050509250925092565b6000600360020182815481101515611cd357fe5b9060005260206000209001549050919050565b600080611cf1613097565b3360008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480611d9b5750600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160009054906101000a900460ff165b90507f7fca019a0a52664785803f352d793a992f66c4affa261b3daf127976e7ad67998282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a1801515611e1857600080fd5b87611e2281612075565b1515611e2d57600080fd5b611e3689612ced565b9550600160036002018054806001018281611e519190613121565b916000526020600020900160008990919091509060001916905503945060a0604051908101604052803073ffffffffffffffffffffffffffffffffffffffff1681526020018b81526020018a81526020018981526020018881525093508360036000016000886000191660001916815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506020820151816001019080519060200190611f3092919061314d565b506040820151816002019080519060200190611f4d92919061314d565b506060820151816003019080519060200190611f6a92919061314d565b506080820151816004019080519060200190611f8792919061314d565b509050508460036001016000886000191660001916815260200190815260200160002081905550836000015173ffffffffffffffffffffffffffffffffffffffff167fde74f67f0ccaf379531f5b3884d0afb87e86192a992d99e7222390f8870a0b5385604001516040518080602001828103825283818151815260200191508051906020019080838360005b8381101561202f578082015181840152602081019050612014565b50505050905090810190601f16801561205c5780820380516001836020036101000a031916815260200191505b509250505060405180910390a250505050505050505050565b60008061208183612ced565b9050600060036002018054905014806120dd575080600019166003600201600360010160008460001916600019168152602001908152602001600020548154811015156120ca57fe5b9060005260206000209001546000191614155b915050919050565b60006120ef6131cd565b6120f76131cd565b6120ff6131cd565b6121076131cd565b61210f613097565b86600060036002018054905011801561216a5750806000191660036002016003600101600084600019166000191681526020019081526020016000205481548110151561215857fe5b90600052602060002090015460001916145b151561217557600080fd5b60036000016000896000191660001916815260200190815260200160002060a060405190810160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561228e5780601f106122635761010080835404028352916020019161228e565b820191906000526020600020905b81548152906001019060200180831161227157829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156123305780601f1061230557610100808354040283529160200191612330565b820191906000526020600020905b81548152906001019060200180831161231357829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156123d25780601f106123a7576101008083540402835291602001916123d2565b820191906000526020600020905b8154815290600101906020018083116123b557829003601f168201915b50505050508152602001600482018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156124745780601f1061244957610100808354040283529160200191612474565b820191906000526020600020905b81548152906001019060200180831161245757829003601f168201915b50505050508152505091508160000151826020015183604001518460600151856080015183935082925081915080905096509650965096509650505091939590929450565b6000600280549050905090565b3360008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614806125705750600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160009054906101000a900460ff165b90507f7fca019a0a52664785803f352d793a992f66c4affa261b3daf127976e7ad67998282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a18015156125ed57600080fd5b600060066000856000191660001916815260200190815260200160002060020160146101000a81548160ff0219169083151502179055507fd1e55fd73bb60d490f023f5239b9c0ca41f4503cca514ab5c7c8649a188afdd38360405180826000191660001916815260200191505060405180910390a1505050565b60075481565b6000806000803360008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16148061271e5750600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160009054906101000a900460ff165b90507f7fca019a0a52664785803f352d793a992f66c4affa261b3daf127976e7ad67998282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a180151561279b57600080fd5b6127a487612ced565b945060036001016000866000191660001916815260200190815260200160002054935060036002016001600360020180549050038154811015156127e457fe5b906000526020600020900154925083600360010160008560001916600019168152602001908152602001600020819055508260036002018581548110151561282857fe5b90600052602060002090018160001916905550600360020180548091906001900361285391906131e1565b50600360000160008660001916600019168152602001908152602001600020600080820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556001820160006128aa919061320d565b6002820160006128ba919061320d565b6003820160006128ca919061320d565b6004820160006128da919061320d565b5050600360010160008660001916600019168152602001908152602001600020600090557f25011d6c52f8dd436cbad877a1e1bfa99b3fc7b3df1c4f7b68d6f6403e943a51876003600201805490506040518080602001838152602001828103825284818151815260200191508051906020019080838360005b8381101561296f578082015181840152602081019050612954565b50505050905090810190601f16801561299c5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a1600195505050505050919050565b3360008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480612a625750600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160009054906101000a900460ff165b90507f7fca019a0a52664785803f352d793a992f66c4affa261b3daf127976e7ad67998282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a1801515612adf57600080fd5b600160066000856000191660001916815260200190815260200160002060020160146101000a81548160ff0219169083151502179055507f3cc2375f3fc7711ba27361cde93880f578742f9f050acee766bed662d117ba728360405180826000191660001916815260200191505060405180910390a1505050565b3360008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161490507f7fca019a0a52664785803f352d793a992f66c4affa261b3daf127976e7ad67998282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a1801515612c2a57600080fd5b6000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160006101000a81548160ff0219169083151502179055507f56a53756e1db2ff35a90edee9bd205b4b2bb8633ee3d6a53a5e85d5b46f0e9dc83604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1505050565b6000816040518082805190602001908083835b602083101515612d255780518252602082019150602081019050602083039250612d00565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209050919050565b6000612d636131cd565b6000806000612d728787611b58565b9250925092508215612de9576000606060405190810160405280602681526020017f496e76616c69642063726564656e7469616c3a2063726564656e7469616c207281526020017f65766f6b6564000000000000000000000000000000000000000000000000000081525080905094509450612f57565b801515612e805780608060405190810160405280604581526020017f496e76616c696420726563697069656e743a20726563697069656e7420646f6581526020017f73206e6f74206d61746368206f726967696e616c207472616e73616374696f6e81526020017f206461746100000000000000000000000000000000000000000000000000000081525080905094509450612f57565b811515612f175781608060405190810160405280605381526020017f496e76616c6964206461746120696e746567726974793a206461746120696e2081526020017f63726564656e7469616c20646f6573206e6f74206d61746368206f726967696e81526020017f616c207472616e73616374696f6e20646174610000000000000000000000000081525080905094509450612f57565b60016040805190810160405280601381526020017f43726564656e7469616c2069732076616c696400000000000000000000000000815250809050945094505b5050509250929050565b60008282600754604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140183805190602001908083835b602083101515612fde5780518252602082019150602081019050602083039250612fb9565b6001836020036101000a03801982511681845116808217855250505050505090500182815260200193505050506040518091039020905092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60016020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154908060020160009054906101000a900460ff16905083565b60a060405190810160405280600073ffffffffffffffffffffffffffffffffffffffff1681526020016130c8613255565b81526020016130d5613255565b81526020016130e2613255565b81526020016130ef613255565b81525090565b81548183558181151161311c5781836000526020600020918201910161311b9190613269565b5b505050565b81548183558181151161314857818360005260206000209182019101613147919061328e565b5b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061318e57805160ff19168380011785556131bc565b828001600101855582156131bc579182015b828111156131bb5782518255916020019190600101906131a0565b5b5090506131c99190613269565b5090565b602060405190810160405280600081525090565b81548183558181151161320857818360005260206000209182019101613207919061328e565b5b505050565b50805460018160011615610100020316600290046000825580601f106132335750613252565b601f0160209004906000526020600020908101906132519190613269565b5b50565b602060405190810160405280600081525090565b61328b91905b8082111561328757600081600090555060010161326f565b5090565b90565b6132b091905b808211156132ac576000816000905550600101613294565b5090565b905600a165627a7a723058205a1a4be6305a6978dfed070ee45d079cae0527bdd59398cda6622bb24772135a0029", + "bytecode": "0x6060604052341561000f57600080fd5b60405160208061336883398101604052808051906020019091905050808080806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050600060078190555050506132df806100896000396000f300606060405260043610610149576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063029a28581461014e5780630decfdea146101d75780631041eb9614610267578063164f0a4e146102f75780631ddb6af61461038f57806324ddd51a1461050f5780633557b6c3146105385780633b57391a1461059b5780634294857f146105d45780635629aec91461061357806359c293f1146106875780635c9d3a94146106c657806372ee19a2146107ec57806377002fcf146108615780637c59fda014610a78578063a5aef15b14610aa1578063affed0e014610ac8578063b610922114610af1578063b75c7dc614610b66578063be47aa0914610b8d578063c1eabde914610bc6578063d8c0941b14610c3f578063eb92948114610d09578063f851a44014610da1578063f9afc24214610df6575b600080fd5b341561015957600080fd5b6101d560048080356000191690602001909190803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050610e81565b005b34156101e257600080fd5b6101fc6004808035600019169060200190919050506113f1565b60405180856000191660001916815260200184600019166000191681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018215151515815260200194505050505060405180910390f35b341561027257600080fd5b61028c60048080356000191690602001909190505061144e565b60405180856000191660001916815260200184600019166000191681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018215151515815260200194505050505060405180910390f35b341561030257600080fd5b610371600480803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061150c565b60405180826000191660001916815260200191505060405180910390f35b341561039a57600080fd5b6104f1600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506115bc565b60405180826000191660001916815260200191505060405180910390f35b341561051a57600080fd5b6105226117b2565b6040518082815260200191505060405180910390f35b341561054357600080fd5b61055960048080359060200190919050506117c2565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156105a657600080fd5b6105d2600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061189f565b005b34156105df57600080fd5b6105f9600480803560001916906020019091905050611b23565b604051808215151515815260200191505060405180910390f35b341561061e57600080fd5b61065760048080356000191690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611b58565b60405180841515151581526020018315151515815260200182151515158152602001935050505060405180910390f35b341561069257600080fd5b6106a86004808035906020019091905050611cbf565b60405180826000191660001916815260200191505060405180910390f35b34156106d157600080fd5b6107ea600480803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050611ce6565b005b34156107f757600080fd5b610847600480803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050612075565b604051808215151515815260200191505060405180910390f35b341561086c57600080fd5b6108866004808035600019169060200190919050506120e5565b604051808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001806020018060200180602001858103855289818151815260200191508051906020019080838360005b838110156109045780820151818401526020810190506108e9565b50505050905090810190601f1680156109315780820380516001836020036101000a031916815260200191505b50858103845288818151815260200191508051906020019080838360005b8381101561096a57808201518184015260208101905061094f565b50505050905090810190601f1680156109975780820380516001836020036101000a031916815260200191505b50858103835287818151815260200191508051906020019080838360005b838110156109d05780820151818401526020810190506109b5565b50505050905090810190601f1680156109fd5780820380516001836020036101000a031916815260200191505b50858103825286818151815260200191508051906020019080838360005b83811015610a36578082015181840152602081019050610a1b565b50505050905090810190601f168015610a635780820380516001836020036101000a031916815260200191505b50995050505050505050505060405180910390f35b3415610a8357600080fd5b610a8b6124b9565b6040518082815260200191505060405180910390f35b3415610aac57600080fd5b610ac66004808035600019169060200190919050506124c6565b005b3415610ad357600080fd5b610adb612668565b6040518082815260200191505060405180910390f35b3415610afc57600080fd5b610b4c600480803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190505061266e565b604051808215151515815260200191505060405180910390f35b3415610b7157600080fd5b610b8b6004808035600019169060200190919050506129b8565b005b3415610b9857600080fd5b610bc4600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612b5a565b005b3415610bd157600080fd5b610c21600480803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050612ced565b60405180826000191660001916815260200191505060405180910390f35b3415610c4a57600080fd5b610c8360048080356000191690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612d59565b604051808315151515815260200180602001828103825283818151815260200191508051906020019080838360005b83811015610ccd578082015181840152602081019050610cb2565b50505050905090810190601f168015610cfa5780820380516001836020036101000a031916815260200191505b50935050505060405180910390f35b3415610d1457600080fd5b610d83600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050612f61565b60405180826000191660001916815260200191505060405180910390f35b3415610dac57600080fd5b610db461301b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3415610e0157600080fd5b610e2d600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050613040565b604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200182151515158152602001935050505060405180910390f35b6000610e8b613097565b60003360008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480610f375750600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160009054906101000a900460ff165b90507f7fca019a0a52664785803f352d793a992f66c4affa261b3daf127976e7ad67998282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a1801515610fb457600080fd5b600760008154809291906001019190505550610fcf86612ced565b945060036000016000866000191660001916815260200190815260200160002060a060405190810160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156110ea5780601f106110bf576101008083540402835291602001916110ea565b820191906000526020600020905b8154815290600101906020018083116110cd57829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561118c5780601f106111615761010080835404028352916020019161118c565b820191906000526020600020905b81548152906001019060200180831161116f57829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561122e5780601f106112035761010080835404028352916020019161122e565b820191906000526020600020905b81548152906001019060200180831161121157829003601f168201915b50505050508152602001600482018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156112d05780601f106112a5576101008083540402835291602001916112d0565b820191906000526020600020905b8154815290600101906020018083116112b357829003601f168201915b50505050508152505093506112fd846000015185602001518660400151876060015188608001518c6115bc565b925060806040519081016040528089600019168152602001846000191681526020018873ffffffffffffffffffffffffffffffffffffffff16815260200160001515815250600660008a60001916600019168152602001908152602001600020600082015181600001906000191690556020820151816001019060001916905560408201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060608201518160020160146101000a81548160ff0219169083151502179055509050505050505050505050565b60066020528060005260406000206000915090508060000154908060010154908060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060020160149054906101000a900460ff16905084565b600080600080600660008660001916600019168152602001908152602001600020600001546006600087600019166000191681526020019081526020016000206001015460066000886000191660001916815260200190815260200160002060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660066000896000191660001916815260200190815260200160002060020160149054906101000a900460ff1693509350935093509193509193565b600082826040518083805190602001908083835b6020831015156115455780518252602082019150602081019050602083039250611520565b6001836020036101000a0380198251168184511680821785525050505050509050018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c01000000000000000000000000028152601401925050506040518091039020905092915050565b6000868686868686604051808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140186805190602001908083835b60208310151561163a5780518252602082019150602081019050602083039250611615565b6001836020036101000a03801982511681845116808217855250505050505090500185805190602001908083835b60208310151561168d5780518252602082019150602081019050602083039250611668565b6001836020036101000a03801982511681845116808217855250505050505090500184805190602001908083835b6020831015156116e057805182526020820191506020810190506020830392506116bb565b6001836020036101000a03801982511681845116808217855250505050505090500183805190602001908083835b602083101515611733578051825260208201915060208101905060208303925061170e565b6001836020036101000a0380198251168184511680821785525050505050509050018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014019650505050505050604051809103902090509695505050505050565b6000600360020180549050905090565b6000600160006002848154811015156117d757fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160009054906101000a900460ff16156118955760028281548110151561186257fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905061189a565b600090505b919050565b3360008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161490507f7fca019a0a52664785803f352d793a992f66c4affa261b3daf127976e7ad67998282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a180151561196f57600080fd5b6060604051908101604052808473ffffffffffffffffffffffffffffffffffffffff1681526020016001600280548060010182816119ad91906130f5565b9160005260206000209001600088909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555003815260200160011515815250600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506020820151816001015560408201518160020160006101000a81548160ff0219169083151502179055509050507f7fd215c956537f33ef9064c457003d82df8562a7b03e1f896c0b39c7abc8355883604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1505050565b600060066000836000191660001916815260200190815260200160002060020160149054906101000a900460ff169050919050565b6000806000806000806000806000611b6f8b61144e565b9550955095509550600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415611bbc576001600080985098509850611cb2565b8215611bd15782600080985098509850611cb2565b8991508173ffffffffffffffffffffffffffffffffffffffff16636bcdaa33876000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b1515611c5357600080fd5b6102c65a03f11515611c6457600080fd5b5050506040518051905090508285600019168260001916148573ffffffffffffffffffffffffffffffffffffffff168c73ffffffffffffffffffffffffffffffffffffffff16149850985098505b5050505050509250925092565b6000600360020182815481101515611cd357fe5b9060005260206000209001549050919050565b600080611cf1613097565b3360008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480611d9b5750600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160009054906101000a900460ff165b90507f7fca019a0a52664785803f352d793a992f66c4affa261b3daf127976e7ad67998282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a1801515611e1857600080fd5b87611e2281612075565b1515611e2d57600080fd5b611e3689612ced565b9550600160036002018054806001018281611e519190613121565b916000526020600020900160008990919091509060001916905503945060a0604051908101604052803073ffffffffffffffffffffffffffffffffffffffff1681526020018b81526020018a81526020018981526020018881525093508360036000016000886000191660001916815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506020820151816001019080519060200190611f3092919061314d565b506040820151816002019080519060200190611f4d92919061314d565b506060820151816003019080519060200190611f6a92919061314d565b506080820151816004019080519060200190611f8792919061314d565b509050508460036001016000886000191660001916815260200190815260200160002081905550836000015173ffffffffffffffffffffffffffffffffffffffff167fde74f67f0ccaf379531f5b3884d0afb87e86192a992d99e7222390f8870a0b5385604001516040518080602001828103825283818151815260200191508051906020019080838360005b8381101561202f578082015181840152602081019050612014565b50505050905090810190601f16801561205c5780820380516001836020036101000a031916815260200191505b509250505060405180910390a250505050505050505050565b60008061208183612ced565b9050600060036002018054905014806120dd575080600019166003600201600360010160008460001916600019168152602001908152602001600020548154811015156120ca57fe5b9060005260206000209001546000191614155b915050919050565b60006120ef6131cd565b6120f76131cd565b6120ff6131cd565b6121076131cd565b61210f613097565b86600060036002018054905011801561216a5750806000191660036002016003600101600084600019166000191681526020019081526020016000205481548110151561215857fe5b90600052602060002090015460001916145b151561217557600080fd5b60036000016000896000191660001916815260200190815260200160002060a060405190810160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561228e5780601f106122635761010080835404028352916020019161228e565b820191906000526020600020905b81548152906001019060200180831161227157829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156123305780601f1061230557610100808354040283529160200191612330565b820191906000526020600020905b81548152906001019060200180831161231357829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156123d25780601f106123a7576101008083540402835291602001916123d2565b820191906000526020600020905b8154815290600101906020018083116123b557829003601f168201915b50505050508152602001600482018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156124745780601f1061244957610100808354040283529160200191612474565b820191906000526020600020905b81548152906001019060200180831161245757829003601f168201915b50505050508152505091508160000151826020015183604001518460600151856080015183935082925081915080905096509650965096509650505091939590929450565b6000600280549050905090565b3360008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614806125705750600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160009054906101000a900460ff165b90507f7fca019a0a52664785803f352d793a992f66c4affa261b3daf127976e7ad67998282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a18015156125ed57600080fd5b600060066000856000191660001916815260200190815260200160002060020160146101000a81548160ff0219169083151502179055507fd1e55fd73bb60d490f023f5239b9c0ca41f4503cca514ab5c7c8649a188afdd38360405180826000191660001916815260200191505060405180910390a1505050565b60075481565b6000806000803360008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16148061271e5750600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160009054906101000a900460ff165b90507f7fca019a0a52664785803f352d793a992f66c4affa261b3daf127976e7ad67998282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a180151561279b57600080fd5b6127a487612ced565b945060036001016000866000191660001916815260200190815260200160002054935060036002016001600360020180549050038154811015156127e457fe5b906000526020600020900154925083600360010160008560001916600019168152602001908152602001600020819055508260036002018581548110151561282857fe5b90600052602060002090018160001916905550600360020180548091906001900361285391906131e1565b50600360000160008660001916600019168152602001908152602001600020600080820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556001820160006128aa919061320d565b6002820160006128ba919061320d565b6003820160006128ca919061320d565b6004820160006128da919061320d565b5050600360010160008660001916600019168152602001908152602001600020600090557f25011d6c52f8dd436cbad877a1e1bfa99b3fc7b3df1c4f7b68d6f6403e943a51876003600201805490506040518080602001838152602001828103825284818151815260200191508051906020019080838360005b8381101561296f578082015181840152602081019050612954565b50505050905090810190601f16801561299c5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a1600195505050505050919050565b3360008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480612a625750600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160009054906101000a900460ff165b90507f7fca019a0a52664785803f352d793a992f66c4affa261b3daf127976e7ad67998282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a1801515612adf57600080fd5b600160066000856000191660001916815260200190815260200160002060020160146101000a81548160ff0219169083151502179055507f3cc2375f3fc7711ba27361cde93880f578742f9f050acee766bed662d117ba728360405180826000191660001916815260200191505060405180910390a1505050565b3360008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161490507f7fca019a0a52664785803f352d793a992f66c4affa261b3daf127976e7ad67998282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a1801515612c2a57600080fd5b6000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160006101000a81548160ff0219169083151502179055507f56a53756e1db2ff35a90edee9bd205b4b2bb8633ee3d6a53a5e85d5b46f0e9dc83604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1505050565b6000816040518082805190602001908083835b602083101515612d255780518252602082019150602081019050602083039250612d00565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209050919050565b6000612d636131cd565b6000806000612d728787611b58565b9250925092508215612de9576000606060405190810160405280602681526020017f496e76616c69642063726564656e7469616c3a2063726564656e7469616c207281526020017f65766f6b6564000000000000000000000000000000000000000000000000000081525080905094509450612f57565b801515612e805780608060405190810160405280604581526020017f496e76616c696420726563697069656e743a20726563697069656e7420646f6581526020017f73206e6f74206d61746368206f726967696e616c207472616e73616374696f6e81526020017f206461746100000000000000000000000000000000000000000000000000000081525080905094509450612f57565b811515612f175781608060405190810160405280605381526020017f496e76616c6964206461746120696e746567726974793a206461746120696e2081526020017f63726564656e7469616c20646f6573206e6f74206d61746368206f726967696e81526020017f616c207472616e73616374696f6e20646174610000000000000000000000000081525080905094509450612f57565b60016040805190810160405280601381526020017f43726564656e7469616c2069732076616c696400000000000000000000000000815250809050945094505b5050509250929050565b60008282600754604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140183805190602001908083835b602083101515612fde5780518252602082019150602081019050602083039250612fb9565b6001836020036101000a03801982511681845116808217855250505050505090500182815260200193505050506040518091039020905092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60016020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154908060020160009054906101000a900460ff16905083565b60a060405190810160405280600073ffffffffffffffffffffffffffffffffffffffff1681526020016130c8613255565b81526020016130d5613255565b81526020016130e2613255565b81526020016130ef613255565b81525090565b81548183558181151161311c5781836000526020600020918201910161311b9190613269565b5b505050565b81548183558181151161314857818360005260206000209182019101613147919061328e565b5b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061318e57805160ff19168380011785556131bc565b828001600101855582156131bc579182015b828111156131bb5782518255916020019190600101906131a0565b5b5090506131c99190613269565b5090565b602060405190810160405280600081525090565b81548183558181151161320857818360005260206000209182019101613207919061328e565b5b505050565b50805460018160011615610100020316600290046000825580601f106132335750613252565b601f0160209004906000526020600020908101906132519190613269565b5b50565b602060405190810160405280600081525090565b61328b91905b8082111561328757600081600090555060010161326f565b5090565b90565b6132b091905b808211156132ac576000816000905550600101613294565b5090565b905600a165627a7a72305820aeb1315d998b5c0433a00b1528522b0fc7a2fbafd0b5278bebeeb7767ea1e3350029", + "deployedBytecode": "0x606060405260043610610149576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063029a28581461014e5780630decfdea146101d75780631041eb9614610267578063164f0a4e146102f75780631ddb6af61461038f57806324ddd51a1461050f5780633557b6c3146105385780633b57391a1461059b5780634294857f146105d45780635629aec91461061357806359c293f1146106875780635c9d3a94146106c657806372ee19a2146107ec57806377002fcf146108615780637c59fda014610a78578063a5aef15b14610aa1578063affed0e014610ac8578063b610922114610af1578063b75c7dc614610b66578063be47aa0914610b8d578063c1eabde914610bc6578063d8c0941b14610c3f578063eb92948114610d09578063f851a44014610da1578063f9afc24214610df6575b600080fd5b341561015957600080fd5b6101d560048080356000191690602001909190803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050610e81565b005b34156101e257600080fd5b6101fc6004808035600019169060200190919050506113f1565b60405180856000191660001916815260200184600019166000191681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018215151515815260200194505050505060405180910390f35b341561027257600080fd5b61028c60048080356000191690602001909190505061144e565b60405180856000191660001916815260200184600019166000191681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018215151515815260200194505050505060405180910390f35b341561030257600080fd5b610371600480803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061150c565b60405180826000191660001916815260200191505060405180910390f35b341561039a57600080fd5b6104f1600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506115bc565b60405180826000191660001916815260200191505060405180910390f35b341561051a57600080fd5b6105226117b2565b6040518082815260200191505060405180910390f35b341561054357600080fd5b61055960048080359060200190919050506117c2565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156105a657600080fd5b6105d2600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061189f565b005b34156105df57600080fd5b6105f9600480803560001916906020019091905050611b23565b604051808215151515815260200191505060405180910390f35b341561061e57600080fd5b61065760048080356000191690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611b58565b60405180841515151581526020018315151515815260200182151515158152602001935050505060405180910390f35b341561069257600080fd5b6106a86004808035906020019091905050611cbf565b60405180826000191660001916815260200191505060405180910390f35b34156106d157600080fd5b6107ea600480803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050611ce6565b005b34156107f757600080fd5b610847600480803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050612075565b604051808215151515815260200191505060405180910390f35b341561086c57600080fd5b6108866004808035600019169060200190919050506120e5565b604051808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001806020018060200180602001858103855289818151815260200191508051906020019080838360005b838110156109045780820151818401526020810190506108e9565b50505050905090810190601f1680156109315780820380516001836020036101000a031916815260200191505b50858103845288818151815260200191508051906020019080838360005b8381101561096a57808201518184015260208101905061094f565b50505050905090810190601f1680156109975780820380516001836020036101000a031916815260200191505b50858103835287818151815260200191508051906020019080838360005b838110156109d05780820151818401526020810190506109b5565b50505050905090810190601f1680156109fd5780820380516001836020036101000a031916815260200191505b50858103825286818151815260200191508051906020019080838360005b83811015610a36578082015181840152602081019050610a1b565b50505050905090810190601f168015610a635780820380516001836020036101000a031916815260200191505b50995050505050505050505060405180910390f35b3415610a8357600080fd5b610a8b6124b9565b6040518082815260200191505060405180910390f35b3415610aac57600080fd5b610ac66004808035600019169060200190919050506124c6565b005b3415610ad357600080fd5b610adb612668565b6040518082815260200191505060405180910390f35b3415610afc57600080fd5b610b4c600480803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190505061266e565b604051808215151515815260200191505060405180910390f35b3415610b7157600080fd5b610b8b6004808035600019169060200190919050506129b8565b005b3415610b9857600080fd5b610bc4600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612b5a565b005b3415610bd157600080fd5b610c21600480803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050612ced565b60405180826000191660001916815260200191505060405180910390f35b3415610c4a57600080fd5b610c8360048080356000191690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612d59565b604051808315151515815260200180602001828103825283818151815260200191508051906020019080838360005b83811015610ccd578082015181840152602081019050610cb2565b50505050905090810190601f168015610cfa5780820380516001836020036101000a031916815260200191505b50935050505060405180910390f35b3415610d1457600080fd5b610d83600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050612f61565b60405180826000191660001916815260200191505060405180910390f35b3415610dac57600080fd5b610db461301b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3415610e0157600080fd5b610e2d600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050613040565b604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200182151515158152602001935050505060405180910390f35b6000610e8b613097565b60003360008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480610f375750600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160009054906101000a900460ff165b90507f7fca019a0a52664785803f352d793a992f66c4affa261b3daf127976e7ad67998282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a1801515610fb457600080fd5b600760008154809291906001019190505550610fcf86612ced565b945060036000016000866000191660001916815260200190815260200160002060a060405190810160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156110ea5780601f106110bf576101008083540402835291602001916110ea565b820191906000526020600020905b8154815290600101906020018083116110cd57829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561118c5780601f106111615761010080835404028352916020019161118c565b820191906000526020600020905b81548152906001019060200180831161116f57829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561122e5780601f106112035761010080835404028352916020019161122e565b820191906000526020600020905b81548152906001019060200180831161121157829003601f168201915b50505050508152602001600482018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156112d05780601f106112a5576101008083540402835291602001916112d0565b820191906000526020600020905b8154815290600101906020018083116112b357829003601f168201915b50505050508152505093506112fd846000015185602001518660400151876060015188608001518c6115bc565b925060806040519081016040528089600019168152602001846000191681526020018873ffffffffffffffffffffffffffffffffffffffff16815260200160001515815250600660008a60001916600019168152602001908152602001600020600082015181600001906000191690556020820151816001019060001916905560408201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060608201518160020160146101000a81548160ff0219169083151502179055509050505050505050505050565b60066020528060005260406000206000915090508060000154908060010154908060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060020160149054906101000a900460ff16905084565b600080600080600660008660001916600019168152602001908152602001600020600001546006600087600019166000191681526020019081526020016000206001015460066000886000191660001916815260200190815260200160002060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660066000896000191660001916815260200190815260200160002060020160149054906101000a900460ff1693509350935093509193509193565b600082826040518083805190602001908083835b6020831015156115455780518252602082019150602081019050602083039250611520565b6001836020036101000a0380198251168184511680821785525050505050509050018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c01000000000000000000000000028152601401925050506040518091039020905092915050565b6000868686868686604051808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140186805190602001908083835b60208310151561163a5780518252602082019150602081019050602083039250611615565b6001836020036101000a03801982511681845116808217855250505050505090500185805190602001908083835b60208310151561168d5780518252602082019150602081019050602083039250611668565b6001836020036101000a03801982511681845116808217855250505050505090500184805190602001908083835b6020831015156116e057805182526020820191506020810190506020830392506116bb565b6001836020036101000a03801982511681845116808217855250505050505090500183805190602001908083835b602083101515611733578051825260208201915060208101905060208303925061170e565b6001836020036101000a0380198251168184511680821785525050505050509050018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014019650505050505050604051809103902090509695505050505050565b6000600360020180549050905090565b6000600160006002848154811015156117d757fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160009054906101000a900460ff16156118955760028281548110151561186257fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905061189a565b600090505b919050565b3360008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161490507f7fca019a0a52664785803f352d793a992f66c4affa261b3daf127976e7ad67998282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a180151561196f57600080fd5b6060604051908101604052808473ffffffffffffffffffffffffffffffffffffffff1681526020016001600280548060010182816119ad91906130f5565b9160005260206000209001600088909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555003815260200160011515815250600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506020820151816001015560408201518160020160006101000a81548160ff0219169083151502179055509050507f7fd215c956537f33ef9064c457003d82df8562a7b03e1f896c0b39c7abc8355883604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1505050565b600060066000836000191660001916815260200190815260200160002060020160149054906101000a900460ff169050919050565b6000806000806000806000806000611b6f8b61144e565b9550955095509550600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415611bbc576001600080985098509850611cb2565b8215611bd15782600080985098509850611cb2565b8991508173ffffffffffffffffffffffffffffffffffffffff16636bcdaa33876000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b1515611c5357600080fd5b6102c65a03f11515611c6457600080fd5b5050506040518051905090508285600019168260001916148573ffffffffffffffffffffffffffffffffffffffff168c73ffffffffffffffffffffffffffffffffffffffff16149850985098505b5050505050509250925092565b6000600360020182815481101515611cd357fe5b9060005260206000209001549050919050565b600080611cf1613097565b3360008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480611d9b5750600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160009054906101000a900460ff165b90507f7fca019a0a52664785803f352d793a992f66c4affa261b3daf127976e7ad67998282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a1801515611e1857600080fd5b87611e2281612075565b1515611e2d57600080fd5b611e3689612ced565b9550600160036002018054806001018281611e519190613121565b916000526020600020900160008990919091509060001916905503945060a0604051908101604052803073ffffffffffffffffffffffffffffffffffffffff1681526020018b81526020018a81526020018981526020018881525093508360036000016000886000191660001916815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506020820151816001019080519060200190611f3092919061314d565b506040820151816002019080519060200190611f4d92919061314d565b506060820151816003019080519060200190611f6a92919061314d565b506080820151816004019080519060200190611f8792919061314d565b509050508460036001016000886000191660001916815260200190815260200160002081905550836000015173ffffffffffffffffffffffffffffffffffffffff167fde74f67f0ccaf379531f5b3884d0afb87e86192a992d99e7222390f8870a0b5385604001516040518080602001828103825283818151815260200191508051906020019080838360005b8381101561202f578082015181840152602081019050612014565b50505050905090810190601f16801561205c5780820380516001836020036101000a031916815260200191505b509250505060405180910390a250505050505050505050565b60008061208183612ced565b9050600060036002018054905014806120dd575080600019166003600201600360010160008460001916600019168152602001908152602001600020548154811015156120ca57fe5b9060005260206000209001546000191614155b915050919050565b60006120ef6131cd565b6120f76131cd565b6120ff6131cd565b6121076131cd565b61210f613097565b86600060036002018054905011801561216a5750806000191660036002016003600101600084600019166000191681526020019081526020016000205481548110151561215857fe5b90600052602060002090015460001916145b151561217557600080fd5b60036000016000896000191660001916815260200190815260200160002060a060405190810160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561228e5780601f106122635761010080835404028352916020019161228e565b820191906000526020600020905b81548152906001019060200180831161227157829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156123305780601f1061230557610100808354040283529160200191612330565b820191906000526020600020905b81548152906001019060200180831161231357829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156123d25780601f106123a7576101008083540402835291602001916123d2565b820191906000526020600020905b8154815290600101906020018083116123b557829003601f168201915b50505050508152602001600482018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156124745780601f1061244957610100808354040283529160200191612474565b820191906000526020600020905b81548152906001019060200180831161245757829003601f168201915b50505050508152505091508160000151826020015183604001518460600151856080015183935082925081915080905096509650965096509650505091939590929450565b6000600280549050905090565b3360008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614806125705750600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160009054906101000a900460ff165b90507f7fca019a0a52664785803f352d793a992f66c4affa261b3daf127976e7ad67998282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a18015156125ed57600080fd5b600060066000856000191660001916815260200190815260200160002060020160146101000a81548160ff0219169083151502179055507fd1e55fd73bb60d490f023f5239b9c0ca41f4503cca514ab5c7c8649a188afdd38360405180826000191660001916815260200191505060405180910390a1505050565b60075481565b6000806000803360008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16148061271e5750600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160009054906101000a900460ff165b90507f7fca019a0a52664785803f352d793a992f66c4affa261b3daf127976e7ad67998282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a180151561279b57600080fd5b6127a487612ced565b945060036001016000866000191660001916815260200190815260200160002054935060036002016001600360020180549050038154811015156127e457fe5b906000526020600020900154925083600360010160008560001916600019168152602001908152602001600020819055508260036002018581548110151561282857fe5b90600052602060002090018160001916905550600360020180548091906001900361285391906131e1565b50600360000160008660001916600019168152602001908152602001600020600080820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556001820160006128aa919061320d565b6002820160006128ba919061320d565b6003820160006128ca919061320d565b6004820160006128da919061320d565b5050600360010160008660001916600019168152602001908152602001600020600090557f25011d6c52f8dd436cbad877a1e1bfa99b3fc7b3df1c4f7b68d6f6403e943a51876003600201805490506040518080602001838152602001828103825284818151815260200191508051906020019080838360005b8381101561296f578082015181840152602081019050612954565b50505050905090810190601f16801561299c5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a1600195505050505050919050565b3360008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480612a625750600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160009054906101000a900460ff165b90507f7fca019a0a52664785803f352d793a992f66c4affa261b3daf127976e7ad67998282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a1801515612adf57600080fd5b600160066000856000191660001916815260200190815260200160002060020160146101000a81548160ff0219169083151502179055507f3cc2375f3fc7711ba27361cde93880f578742f9f050acee766bed662d117ba728360405180826000191660001916815260200191505060405180910390a1505050565b3360008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161490507f7fca019a0a52664785803f352d793a992f66c4affa261b3daf127976e7ad67998282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a1801515612c2a57600080fd5b6000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160006101000a81548160ff0219169083151502179055507f56a53756e1db2ff35a90edee9bd205b4b2bb8633ee3d6a53a5e85d5b46f0e9dc83604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1505050565b6000816040518082805190602001908083835b602083101515612d255780518252602082019150602081019050602083039250612d00565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209050919050565b6000612d636131cd565b6000806000612d728787611b58565b9250925092508215612de9576000606060405190810160405280602681526020017f496e76616c69642063726564656e7469616c3a2063726564656e7469616c207281526020017f65766f6b6564000000000000000000000000000000000000000000000000000081525080905094509450612f57565b801515612e805780608060405190810160405280604581526020017f496e76616c696420726563697069656e743a20726563697069656e7420646f6581526020017f73206e6f74206d61746368206f726967696e616c207472616e73616374696f6e81526020017f206461746100000000000000000000000000000000000000000000000000000081525080905094509450612f57565b811515612f175781608060405190810160405280605381526020017f496e76616c6964206461746120696e746567726974793a206461746120696e2081526020017f63726564656e7469616c20646f6573206e6f74206d61746368206f726967696e81526020017f616c207472616e73616374696f6e20646174610000000000000000000000000081525080905094509450612f57565b60016040805190810160405280601381526020017f43726564656e7469616c2069732076616c696400000000000000000000000000815250809050945094505b5050509250929050565b60008282600754604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140183805190602001908083835b602083101515612fde5780518252602082019150602081019050602083039250612fb9565b6001836020036101000a03801982511681845116808217855250505050505090500182815260200193505050506040518091039020905092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60016020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154908060020160009054906101000a900460ff16905083565b60a060405190810160405280600073ffffffffffffffffffffffffffffffffffffffff1681526020016130c8613255565b81526020016130d5613255565b81526020016130e2613255565b81526020016130ef613255565b81525090565b81548183558181151161311c5781836000526020600020918201910161311b9190613269565b5b505050565b81548183558181151161314857818360005260206000209182019101613147919061328e565b5b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061318e57805160ff19168380011785556131bc565b828001600101855582156131bc579182015b828111156131bb5782518255916020019190600101906131a0565b5b5090506131c99190613269565b5090565b602060405190810160405280600081525090565b81548183558181151161320857818360005260206000209182019101613207919061328e565b5b505050565b50805460018160011615610100020316600290046000825580601f106132335750613252565b601f0160209004906000526020600020908101906132519190613269565b5b50565b602060405190810160405280600081525090565b61328b91905b8082111561328757600081600090555060010161326f565b5090565b90565b6132b091905b808211156132ac576000816000905550600101613294565b5090565b905600a165627a7a72305820aeb1315d998b5c0433a00b1528522b0fc7a2fbafd0b5278bebeeb7767ea1e3350029", "sourceMap": "85:2201:7:-;;;775:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;845:16;535::6;894::2;601::0;593:5;;:24;;;;;;;;;;;;;;;;;;524:100;822:92:2;571:1:6;563:5;:9;;;;461:118;775:90:7;85:2201;;;;;;", "deployedSourceMap": "85:2201:7:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;758:621:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;376:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1708:354;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5010:141:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;103:376:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3736:129:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2378:272:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1500:247;;;;;;;;;;;;;;;;;;;;;;;;;;;;2904:125:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1665:618:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4650:133:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2212:630;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1056:271;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4050:459;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2790:135:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2690:161:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;437:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2937:660:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2442:156:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1945:190:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;4831:126:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;871:564:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2200:154:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;109:20:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;370:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;758:621:6;948:21;1010:18;;:::i;:::-;1073:21;869:10;849:17:0;881:5;;;;;;;;;;;870:16;;:7;:16;;;:63;;;;890:21;:30;912:7;890:30;;;;;;;;;;;;;;;:43;;;;;;;;;;;;870:63;849:85;;944:39;961:7;970:12;944:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1001:12;993:21;;;;;;;;931:5:6;;:7;;;;;;;;;;;;;972:28;989:10;972:16;:28::i;:::-;948:52;;1031:10;:17;;:32;1049:13;1031:32;;;;;;;;;;;;;;;;;1010:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1097:183;1127:5;:12;;;1153:5;:17;;;1184:5;:10;;;1208:5;:11;;;1233:5;:13;;;1260:10;1097:16;:183::i;:::-;1073:207;;1318:54;;;;;;;;;1330:7;1318:54;;;;;;;1339:13;1318:54;;;;;;;1354:10;1318:54;;;;;;1366:5;1318:54;;;;;1290:16;:25;1307:7;1290:25;;;;;;;;;;;;;;;;;:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;758:621;;;;;;;;:::o;376:54::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1708:354::-;1765:14;1781:21;1804:17;1823:12;1867:16;:25;1884:7;1867:25;;;;;;;;;;;;;;;;;:29;;;1910:16;:25;1927:7;1910:25;;;;;;;;;;;;;;;;;:39;;;1963:16;:25;1980:7;1963:25;;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;2012:16;:25;2029:7;2012:25;;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;1847:208;;;;;;;;1708:354;;;;;:::o;5010:141:2:-;5088:12;5129:5;5136:7;5119:25;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:2;51:6;36:153;;;182:3;176:5;171:3;164:6;98:2;93:3;89;82:19;;123:2;118:3;114;107:19;;148:2;143:3;139;132:19;;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5112:32:2;;5010:141;;;;:::o;103:376:1:-;287:13;344:6;366:11;393:4;413:5;434:7;457:9;319:155;;;;;;;;;;;;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:2;51:6;36:153;;;182:3;176:5;171:3;164:6;98:2;93:3;89;82:19;;123:2;118:3;114;107:19;;148:2;143:3;139;132:19;;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;36:153;66:2;61:3;58:2;51:6;36:153;;;182:3;176:5;171:3;164:6;98:2;93:3;89;82:19;;123:2;118:3;114;107:19;;148:2;143:3;139;132:19;;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;36:153;66:2;61:3;58:2;51:6;36:153;;;182:3;176:5;171:3;164:6;98:2;93:3;89;82:19;;123:2;118:3;114;107:19;;148:2;143:3;139;132:19;;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;36:153;66:2;61:3;58:2;51:6;36:153;;;182:3;176:5;171:3;164:6;98:2;93:3;89;82:19;;123:2;118:3;114;107:19;;148:2;143:3;139;132:19;;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;312:162:1;;103:376;;;;;;;;:::o;3736:129:2:-;3793:10;3826;:25;;:32;;;;3819:39;;3736:129;:::o;2378:272:0:-;2441:15;2472:21;:53;2494:22;2517:6;2494:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;2472:53;;;;;;;;;;;;;;;:66;;;;;;;;;;;;2468:176;;;2561:22;2584:6;2561:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;2554:37;;;;2468:176;160:42;2622:11;;2378:272;;;;:::o;1500:247::-;1562:10;1147:17;1179:5;;;;;;;;;;;1168:16;;:7;:16;;;1147:38;;1195:39;1212:7;1221:12;1195:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1252:12;1244:21;;;;;;;;1620:78;;;;;;;;;1638:10;1620:78;;;;;;1690:1;1650:22;:39;;;;;;;;;;;:::i;:::-;;;;;;;;;;1678:10;1650:39;;;;;;;;;;;;;;;;;;;;;;:41;1620:78;;;;1693:4;1620:78;;;;;1584:21;:33;1606:10;1584:33;;;;;;;;;;;;;;;:114;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1708:32;1729:10;1708:32;;;;;;;;;;;;;;;;;;;;;;1500:247;;;:::o;2904:125:6:-;2964:6;2989:16;:25;3006:7;2989:25;;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;2982:40;;2904:125;;;:::o;1665:618:7:-;1755:13;1771:24;1797:20;1834:3;1839:13;1854:9;1865:7;2059:13;2103:22;1876:15;1883:7;1876:6;:15::i;:::-;1829:62;;;;;;;;726:42;1906:17;;:9;:17;;;1902:147;;;1946:4;1952:5;1959;1939:26;;;;;;;;1902:147;1986:7;1982:67;;;2016:7;2025:5;2032;2009:29;;;;;;;;1982:67;2082:10;2059:34;;2128:6;:23;;;2152:3;2128:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2103:53;;2173:7;2213:13;2195:31;;;:14;:31;;;;2256:9;2242:23;;:10;:23;;;2166:110;;;;;;1665:618;;;;;;;;;;;;:::o;4650:133:2:-;4711:13;4743:10;:25;;4769:6;4743:33;;;;;;;;;;;;;;;;;;;4736:40;;4650:133;;;:::o;2212:630::-;2408:21;2465:10;2535:18;;:::i;:::-;2352:10;849:17:0;881:5;;;;;;;;;;;870:16;;:7;:16;;;:63;;;;890:21;:30;912:7;890:30;;;;;;;;;;;;;;;:43;;;;;;;;;;;;870:63;849:85;;944:39;961:7;970:12;944:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1001:12;993:21;;;;;;;;2376:5:2;1016:15;1025:5;1016:8;:15::i;:::-;1008:24;;;;;;;;2432:23;2449:5;2432:16;:23::i;:::-;2408:47;;2524:1;2478:10;:25;;:45;;;;;;;;;;;:::i;:::-;;;;;;;;;;2509:13;2478:45;;;;;;;;;;;:47;2465:60;;2556:129;;;;;;;;;2583:4;2556:129;;;;;;2602:12;2556:129;;;;2628:5;2556:129;;;;2647:6;2556:129;;;;2667:8;2556:129;;;2535:150;;2730:5;2695:10;:17;;:32;2713:13;2695:32;;;;;;;;;;;;;;;;;:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;2782:5;2745:10;:19;;:34;2765:13;2745:34;;;;;;;;;;;;;;;;;:42;;;;2822:5;:12;;;2797:38;;;2810:5;:10;;;2797:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1024:1:0;2212:630:2;;;;;;;;;:::o;1056:271::-;1112:11;1135:21;1159:23;1176:5;1159:16;:23::i;:::-;1135:47;;1236:1;1200:10;:25;;:32;;;;:37;:119;;;;1306:13;1241:78;;;:10;:25;;1267:10;:19;;:34;1287:13;1267:34;;;;;;;;;;;;;;;;;;1241:61;;;;;;;;;;;;;;;;;;;:78;;;;;1200:119;1192:128;;1056:271;;;;:::o;4050:459::-;4161:14;4185:18;;:::i;:::-;4213:12;;:::i;:::-;4235;;:::i;:::-;4257:14;;:::i;:::-;4288:18;;:::i;:::-;4112:14;1790:1;1755:10;:25;;:32;;;;:36;:120;;;;;1861:14;1795:80;;;:10;:25;;1821:10;:19;;:35;1841:14;1821:35;;;;;;;;;;;;;;;;;;1795:62;;;;;;;;;;;;;;;;;;;:80;;;;1755:120;1747:129;;;;;;;;4309:10;:17;;:33;4327:14;4309:33;;;;;;;;;;;;;;;;;4288:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4373:5;:12;;;4399:5;:17;;;4430:5;:10;;;4454:5;:11;;;4479:5;:13;;;4352:150;;;;;;;;;;;;;;;;;;;;;;4050:459;;;;;;;;;:::o;2790:135:0:-;2851:19;2889:22;:29;;;;2882:36;;2790:135;:::o;2690:161:6:-;2743:10;849:17:0;881:5;;;;;;;;;;;870:16;;:7;:16;;;:63;;;;890:21;:30;912:7;890:30;;;;;;;;;;;;;;;:43;;;;;;;;;;;;870:63;849:85;;944:39;961:7;970:12;944:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1001:12;993:21;;;;;;;;2801:5:6;2765:16;:25;2782:7;2765:25;;;;;;;;;;;;;;;;;:33;;;:41;;;;;;;;;;;;;;;;;;2816:28;2836:7;2816:28;;;;;;;;;;;;;;;;;;;;;;;;2690:161;;;:::o;437:17::-;;;;:::o;2937:660:2:-;3018:12;3046:21;3103:16;3166:17;2987:10;849:17:0;881:5;;;;;;;;;;;870:16;;:7;:16;;;:63;;;;890:21;:30;912:7;890:30;;;;;;;;;;;;;;;:43;;;;;;;;;;;;870:63;849:85;;944:39;961:7;970:12;944:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1001:12;993:21;;;;;;;;3070:23:2;3087:5;3070:16;:23::i;:::-;3046:47;;3122:10;:19;;:34;3142:13;3122:34;;;;;;;;;;;;;;;;;;3103:53;;3186:10;:25;;3245:1;3212:10;:25;;:32;;;;:34;3186:61;;;;;;;;;;;;;;;;;;;3166:81;;3290:11;3257:10;:19;;:30;3277:9;3257:30;;;;;;;;;;;;;;;;;:44;;;;3352:9;3311:10;:25;;3337:11;3311:38;;;;;;;;;;;;;;;;;;:50;;;;;;;3371:10;:25;;:34;;;;;;;;;;;;:::i;:::-;;3422:10;:17;;:32;3440:13;3422:32;;;;;;;;;;;;;;;;;;3415:39;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;3471:10;:19;;:34;3491:13;3471:34;;;;;;;;;;;;;;;;;3464:41;;;3516:53;3529:5;3536:10;:25;;:32;;;;3516:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3586:4:2;3579:11;;2937:660;;;;;;;;:::o;2442:156:6:-;2493:10;849:17:0;881:5;;;;;;;;;;;870:16;;:7;:16;;;:63;;;;890:21;:30;912:7;890:30;;;;;;;;;;;;;;;:43;;;;;;;;;;;;870:63;849:85;;944:39;961:7;970:12;944:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1001:12;993:21;;;;;;;;2551:4:6;2515:16;:25;2532:7;2515:25;;;;;;;;;;;;;;;;;:33;;;:40;;;;;;;;;;;;;;;;;;2565:26;2583:7;2565:26;;;;;;;;;;;;;;;;;;;;;;;;2442:156;;;:::o;1945:190:0:-;2012:10;1147:17;1179:5;;;;;;;;;;;1168:16;;:7;:16;;;1147:38;;1195:39;1212:7;1221:12;1195:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1252:12;1244:21;;;;;;;;2080:5;2034:21;:30;2056:7;2034:30;;;;;;;;;;;;;;;:43;;;:51;;;;;;;;;;;;;;;;;;2095:33;2120:7;2095:33;;;;;;;;;;;;;;;;;;;;;;1945:190;;;:::o;4831:126:2:-;4897:13;4939:10;4929:21;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:2;51:6;36:153;;;182:3;176:5;171:3;164:6;98:2;93:3;89;82:19;;123:2;118:3;114;107:19;;148:2;143:3;139;132:19;;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;4922:28:2;;4831:126;;;:::o;871:564:7:-;958:15;975:13;;:::i;:::-;1005:8;1015:19;1036:15;1055:40;1075:7;1084:10;1055:19;:40::i;:::-;1000:95;;;;;;1109:8;1105:324;;;1140:5;1147:7;;;;;;;;;;;;;;;;;;;;;;;1133:22;;;;;;;;;1105:324;1177:15;1176:16;1172:257;;;1215:15;1232:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;1208:42;;;;;;;;;1172:257;1272:19;1271:20;1267:162;;;1314:19;1335:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;1307:50;;;;;;;;;1267:162;1395:4;1401:16;;;;;;;;;;;;;;;;;;1388:30;;;;;;;871:564;;;;;;;;;:::o;2200:154:6:-;2282:11;2322:7;2331:8;2341:5;;2312:35;;;;;;;;;;;;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:2;51:6;36:153;;;182:3;176:5;171:3;164:6;98:2;93:3;89;82:19;;123:2;118:3;114;107:19;;148:2;143:3;139;132:19;;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;;;;;;;;2305:42:6;;2200:154;;;;:::o;109:20:0:-;;;;;;;;;;;;;:::o;370:65::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;85:2201:7:-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o", "source": "pragma solidity ^0.4.17;\n\nimport \"./TransactionManager.sol\";\nimport \"./Holder.sol\";\n\ncontract Verifier is TransactionManager {\n\n string constant INVALID_TRANSACTION = \"Invalid transaction: the transaction does not exist\";\n string constant INVALID_INTEGRITYHASH = \"Invalid data integrity: data in credential does not match original transaction data\";\n string constant INVALID_RECIPIENT = \"Invalid recipient: recipient does not match original transaction data\";\n string constant INVALID_TXTKEY = \"Invalid transaction key: transaction keys don't match\";\n string constant REVOKED = \"Invalid credential: credential revoked\";\n string constant VALID_CREDENTIAL = \"Credential is valid\";\n\n address constant NONE = 0x0000000000000000000000000000000000000000;\n\n function Verifier(address _adminWalletAddr) public TransactionManager(_adminWalletAddr) {}\n\n function verifyCredential(bytes32 _txnKey, address _recipient) constant public returns(bool isVerified, string errMsg) {\n var (_revoked, _integrityHashCheck, _recipientCheck) = verifyCredentialTxn(_txnKey, _recipient);\n if (_revoked) {\n return(false, REVOKED);\n } else if (!_recipientCheck) {\n return(_recipientCheck, INVALID_RECIPIENT);\n } else if (!_integrityHashCheck) {\n return(_integrityHashCheck, INVALID_INTEGRITYHASH);\n } else {\n return(true, VALID_CREDENTIAL);\n }\n }\n\n /// @notice check that a transaction key exists in the transaction map (verify credential issuer)\n /// @param _txnKey key to access the transaction\n /// @param _recipient recipient of the credential being verified\n function verifyCredentialTxn(bytes32 _txnKey, address _recipient) constant public returns(bool _revoked, bool _integrityHashCheck, bool _recipientCheck) {\n var (key, integrityHash, recipient, revoked) = getTxn(_txnKey);\n\n if (recipient == NONE) {\n return(true, false, false);\n } else if (revoked) {\n return(revoked, false, false);\n }\n\n Holder holder = Holder(_recipient);\n bytes32 _integrityHash = holder.recomputePOIHash(key);\n return(revoked,\n (_integrityHash == integrityHash),\n (_recipient == recipient)\n );\n }\n\n}\n", @@ -664,7 +664,7 @@ "absolutePath": "/home/kc1116/Desktop/badgeforce_development/badgeforce/contracts/Verifier.sol", "exportedSymbols": { "Verifier": [ - 1729 + 1752 ] } }, @@ -678,37 +678,37 @@ ".17" ] }, - "id": 1582, + "id": 1605, "name": "PragmaDirective", "src": "0:24:7" }, { "attributes": { - "SourceUnit": 1581, + "SourceUnit": 1604, "absolutePath": "/home/kc1116/Desktop/badgeforce_development/badgeforce/contracts/TransactionManager.sol", "file": "./TransactionManager.sol", - "scope": 1730, + "scope": 1753, "symbolAliases": [ null ], "unitAlias": "" }, - "id": 1583, + "id": 1606, "name": "ImportDirective", "src": "26:34:7" }, { "attributes": { - "SourceUnit": 1114, + "SourceUnit": 1137, "absolutePath": "/home/kc1116/Desktop/badgeforce_development/badgeforce/contracts/Holder.sol", "file": "./Holder.sol", - "scope": 1730, + "scope": 1753, "symbolAliases": [ null ], "unitAlias": "" }, - "id": 1584, + "id": 1607, "name": "ImportDirective", "src": "61:22:7" }, @@ -718,20 +718,20 @@ 176, 206, 604, - 1580 + 1603 ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, "linearizedBaseContracts": [ - 1729, - 1580, + 1752, + 1603, 206, 604, 176 ], "name": "Verifier", - "scope": 1730 + "scope": 1753 }, "children": [ { @@ -745,15 +745,15 @@ "attributes": { "contractScope": null, "name": "TransactionManager", - "referencedDeclaration": 1580, + "referencedDeclaration": 1603, "type": "contract TransactionManager" }, - "id": 1585, + "id": 1608, "name": "UserDefinedTypeName", "src": "106:18:7" } ], - "id": 1586, + "id": 1609, "name": "InheritanceSpecifier", "src": "106:18:7" }, @@ -761,7 +761,7 @@ "attributes": { "constant": true, "name": "INVALID_TRANSACTION", - "scope": 1729, + "scope": 1752, "stateVariable": true, "storageLocation": "default", "type": "string memory", @@ -773,7 +773,7 @@ "name": "string", "type": "string storage pointer" }, - "id": 1587, + "id": 1610, "name": "ElementaryTypeName", "src": "132:6:7" }, @@ -790,12 +790,12 @@ "type": "literal_string \"Invalid transaction: the transaction does not exist\"", "value": "Invalid transaction: the transaction does not exist" }, - "id": 1588, + "id": 1611, "name": "Literal", "src": "170:53:7" } ], - "id": 1589, + "id": 1612, "name": "VariableDeclaration", "src": "132:91:7" }, @@ -803,7 +803,7 @@ "attributes": { "constant": true, "name": "INVALID_INTEGRITYHASH", - "scope": 1729, + "scope": 1752, "stateVariable": true, "storageLocation": "default", "type": "string memory", @@ -815,7 +815,7 @@ "name": "string", "type": "string storage pointer" }, - "id": 1590, + "id": 1613, "name": "ElementaryTypeName", "src": "229:6:7" }, @@ -832,12 +832,12 @@ "type": "literal_string \"Invalid data integrity: data in credential does not match original transaction data\"", "value": "Invalid data integrity: data in credential does not match original transaction data" }, - "id": 1591, + "id": 1614, "name": "Literal", "src": "269:85:7" } ], - "id": 1592, + "id": 1615, "name": "VariableDeclaration", "src": "229:125:7" }, @@ -845,7 +845,7 @@ "attributes": { "constant": true, "name": "INVALID_RECIPIENT", - "scope": 1729, + "scope": 1752, "stateVariable": true, "storageLocation": "default", "type": "string memory", @@ -857,7 +857,7 @@ "name": "string", "type": "string storage pointer" }, - "id": 1593, + "id": 1616, "name": "ElementaryTypeName", "src": "360:6:7" }, @@ -874,12 +874,12 @@ "type": "literal_string \"Invalid recipient: recipient does not match original transaction data\"", "value": "Invalid recipient: recipient does not match original transaction data" }, - "id": 1594, + "id": 1617, "name": "Literal", "src": "396:71:7" } ], - "id": 1595, + "id": 1618, "name": "VariableDeclaration", "src": "360:107:7" }, @@ -887,7 +887,7 @@ "attributes": { "constant": true, "name": "INVALID_TXTKEY", - "scope": 1729, + "scope": 1752, "stateVariable": true, "storageLocation": "default", "type": "string memory", @@ -899,7 +899,7 @@ "name": "string", "type": "string storage pointer" }, - "id": 1596, + "id": 1619, "name": "ElementaryTypeName", "src": "473:6:7" }, @@ -916,12 +916,12 @@ "type": "literal_string \"Invalid transaction key: transaction keys don't match\"", "value": "Invalid transaction key: transaction keys don't match" }, - "id": 1597, + "id": 1620, "name": "Literal", "src": "506:55:7" } ], - "id": 1598, + "id": 1621, "name": "VariableDeclaration", "src": "473:88:7" }, @@ -929,7 +929,7 @@ "attributes": { "constant": true, "name": "REVOKED", - "scope": 1729, + "scope": 1752, "stateVariable": true, "storageLocation": "default", "type": "string memory", @@ -941,7 +941,7 @@ "name": "string", "type": "string storage pointer" }, - "id": 1599, + "id": 1622, "name": "ElementaryTypeName", "src": "567:6:7" }, @@ -958,12 +958,12 @@ "type": "literal_string \"Invalid credential: credential revoked\"", "value": "Invalid credential: credential revoked" }, - "id": 1600, + "id": 1623, "name": "Literal", "src": "593:40:7" } ], - "id": 1601, + "id": 1624, "name": "VariableDeclaration", "src": "567:66:7" }, @@ -971,7 +971,7 @@ "attributes": { "constant": true, "name": "VALID_CREDENTIAL", - "scope": 1729, + "scope": 1752, "stateVariable": true, "storageLocation": "default", "type": "string memory", @@ -983,7 +983,7 @@ "name": "string", "type": "string storage pointer" }, - "id": 1602, + "id": 1625, "name": "ElementaryTypeName", "src": "639:6:7" }, @@ -1000,12 +1000,12 @@ "type": "literal_string \"Credential is valid\"", "value": "Credential is valid" }, - "id": 1603, + "id": 1626, "name": "Literal", "src": "674:21:7" } ], - "id": 1604, + "id": 1627, "name": "VariableDeclaration", "src": "639:56:7" }, @@ -1013,7 +1013,7 @@ "attributes": { "constant": true, "name": "NONE", - "scope": 1729, + "scope": 1752, "stateVariable": true, "storageLocation": "default", "type": "address", @@ -1025,7 +1025,7 @@ "name": "address", "type": "address" }, - "id": 1605, + "id": 1628, "name": "ElementaryTypeName", "src": "702:7:7" }, @@ -1042,12 +1042,12 @@ "type": "address", "value": "0x0000000000000000000000000000000000000000" }, - "id": 1606, + "id": 1629, "name": "Literal", "src": "726:42:7" } ], - "id": 1607, + "id": 1630, "name": "VariableDeclaration", "src": "702:66:7" }, @@ -1058,7 +1058,7 @@ "isConstructor": true, "name": "Verifier", "payable": false, - "scope": 1729, + "scope": 1752, "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" @@ -1070,7 +1070,7 @@ "attributes": { "constant": false, "name": "_adminWalletAddr", - "scope": 1616, + "scope": 1639, "stateVariable": false, "storageLocation": "default", "type": "address", @@ -1083,17 +1083,17 @@ "name": "address", "type": "address" }, - "id": 1608, + "id": 1631, "name": "ElementaryTypeName", "src": "793:7:7" } ], - "id": 1609, + "id": 1632, "name": "VariableDeclaration", "src": "793:24:7" } ], - "id": 1610, + "id": 1633, "name": "ParameterList", "src": "792:26:7" }, @@ -1104,7 +1104,7 @@ ] }, "children": [], - "id": 1614, + "id": 1637, "name": "ParameterList", "src": "863:0:7" }, @@ -1116,11 +1116,11 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1580, + "referencedDeclaration": 1603, "type": "type(contract TransactionManager)", "value": "TransactionManager" }, - "id": 1611, + "id": 1634, "name": "Identifier", "src": "826:18:7" }, @@ -1130,16 +1130,16 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1609, + "referencedDeclaration": 1632, "type": "address", "value": "_adminWalletAddr" }, - "id": 1612, + "id": 1635, "name": "Identifier", "src": "845:16:7" } ], - "id": 1613, + "id": 1636, "name": "ModifierInvocation", "src": "826:36:7" }, @@ -1150,12 +1150,12 @@ ] }, "children": [], - "id": 1615, + "id": 1638, "name": "Block", "src": "863:2:7" } ], - "id": 1616, + "id": 1639, "name": "FunctionDefinition", "src": "775:90:7" }, @@ -1169,7 +1169,7 @@ ], "name": "verifyCredential", "payable": false, - "scope": 1729, + "scope": 1752, "stateMutability": "view", "superFunction": null, "visibility": "public" @@ -1181,7 +1181,7 @@ "attributes": { "constant": false, "name": "_txnKey", - "scope": 1664, + "scope": 1687, "stateVariable": false, "storageLocation": "default", "type": "bytes32", @@ -1194,12 +1194,12 @@ "name": "bytes32", "type": "bytes32" }, - "id": 1617, + "id": 1640, "name": "ElementaryTypeName", "src": "897:7:7" } ], - "id": 1618, + "id": 1641, "name": "VariableDeclaration", "src": "897:15:7" }, @@ -1207,7 +1207,7 @@ "attributes": { "constant": false, "name": "_recipient", - "scope": 1664, + "scope": 1687, "stateVariable": false, "storageLocation": "default", "type": "address", @@ -1220,17 +1220,17 @@ "name": "address", "type": "address" }, - "id": 1619, + "id": 1642, "name": "ElementaryTypeName", "src": "914:7:7" } ], - "id": 1620, + "id": 1643, "name": "VariableDeclaration", "src": "914:18:7" } ], - "id": 1621, + "id": 1644, "name": "ParameterList", "src": "896:37:7" }, @@ -1240,7 +1240,7 @@ "attributes": { "constant": false, "name": "isVerified", - "scope": 1664, + "scope": 1687, "stateVariable": false, "storageLocation": "default", "type": "bool", @@ -1253,12 +1253,12 @@ "name": "bool", "type": "bool" }, - "id": 1622, + "id": 1645, "name": "ElementaryTypeName", "src": "958:4:7" } ], - "id": 1623, + "id": 1646, "name": "VariableDeclaration", "src": "958:15:7" }, @@ -1266,7 +1266,7 @@ "attributes": { "constant": false, "name": "errMsg", - "scope": 1664, + "scope": 1687, "stateVariable": false, "storageLocation": "default", "type": "string memory", @@ -1279,17 +1279,17 @@ "name": "string", "type": "string storage pointer" }, - "id": 1624, + "id": 1647, "name": "ElementaryTypeName", "src": "975:6:7" } ], - "id": 1625, + "id": 1648, "name": "VariableDeclaration", "src": "975:13:7" } ], - "id": 1626, + "id": 1649, "name": "ParameterList", "src": "957:32:7" }, @@ -1298,9 +1298,9 @@ { "attributes": { "assignments": [ - 1627, - 1628, - 1629 + 1650, + 1651, + 1652 ] }, "children": [ @@ -1308,7 +1308,7 @@ "attributes": { "constant": false, "name": "_revoked", - "scope": 1664, + "scope": 1687, "stateVariable": false, "storageLocation": "default", "type": "bool", @@ -1317,7 +1317,7 @@ "visibility": "internal" }, "children": [], - "id": 1627, + "id": 1650, "name": "VariableDeclaration", "src": "1005:8:7" }, @@ -1325,7 +1325,7 @@ "attributes": { "constant": false, "name": "_integrityHashCheck", - "scope": 1664, + "scope": 1687, "stateVariable": false, "storageLocation": "default", "type": "bool", @@ -1334,7 +1334,7 @@ "visibility": "internal" }, "children": [], - "id": 1628, + "id": 1651, "name": "VariableDeclaration", "src": "1015:19:7" }, @@ -1342,7 +1342,7 @@ "attributes": { "constant": false, "name": "_recipientCheck", - "scope": 1664, + "scope": 1687, "stateVariable": false, "storageLocation": "default", "type": "bool", @@ -1351,7 +1351,7 @@ "visibility": "internal" }, "children": [], - "id": 1629, + "id": 1652, "name": "VariableDeclaration", "src": "1036:15:7" }, @@ -1385,11 +1385,11 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1728, + "referencedDeclaration": 1751, "type": "function (bytes32,address) view returns (bool,bool,bool)", "value": "verifyCredentialTxn" }, - "id": 1630, + "id": 1653, "name": "Identifier", "src": "1055:19:7" }, @@ -1399,11 +1399,11 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1618, + "referencedDeclaration": 1641, "type": "bytes32", "value": "_txnKey" }, - "id": 1631, + "id": 1654, "name": "Identifier", "src": "1075:7:7" }, @@ -1413,21 +1413,21 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1620, + "referencedDeclaration": 1643, "type": "address", "value": "_recipient" }, - "id": 1632, + "id": 1655, "name": "Identifier", "src": "1084:10:7" } ], - "id": 1633, + "id": 1656, "name": "FunctionCall", "src": "1055:40:7" } ], - "id": 1634, + "id": 1657, "name": "VariableDeclarationStatement", "src": "1000:95:7" }, @@ -1439,11 +1439,11 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1627, + "referencedDeclaration": 1650, "type": "bool", "value": "_revoked" }, - "id": 1635, + "id": 1658, "name": "Identifier", "src": "1109:8:7" }, @@ -1451,7 +1451,7 @@ "children": [ { "attributes": { - "functionReturnParameters": 1626 + "functionReturnParameters": 1649 }, "children": [ { @@ -1478,7 +1478,7 @@ "type": "bool", "value": "false" }, - "id": 1636, + "id": 1659, "name": "Literal", "src": "1140:5:7" }, @@ -1488,26 +1488,26 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1601, + "referencedDeclaration": 1624, "type": "string memory", "value": "REVOKED" }, - "id": 1637, + "id": 1660, "name": "Identifier", "src": "1147:7:7" } ], - "id": 1638, + "id": 1661, "name": "TupleExpression", "src": "1139:16:7" } ], - "id": 1639, + "id": 1662, "name": "Return", "src": "1133:22:7" } ], - "id": 1640, + "id": 1663, "name": "Block", "src": "1119:47:7" }, @@ -1531,16 +1531,16 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1629, + "referencedDeclaration": 1652, "type": "bool", "value": "_recipientCheck" }, - "id": 1641, + "id": 1664, "name": "Identifier", "src": "1177:15:7" } ], - "id": 1642, + "id": 1665, "name": "UnaryOperation", "src": "1176:16:7" }, @@ -1548,7 +1548,7 @@ "children": [ { "attributes": { - "functionReturnParameters": 1626 + "functionReturnParameters": 1649 }, "children": [ { @@ -1568,11 +1568,11 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1629, + "referencedDeclaration": 1652, "type": "bool", "value": "_recipientCheck" }, - "id": 1643, + "id": 1666, "name": "Identifier", "src": "1215:15:7" }, @@ -1582,26 +1582,26 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1595, + "referencedDeclaration": 1618, "type": "string memory", "value": "INVALID_RECIPIENT" }, - "id": 1644, + "id": 1667, "name": "Identifier", "src": "1232:17:7" } ], - "id": 1645, + "id": 1668, "name": "TupleExpression", "src": "1214:36:7" } ], - "id": 1646, + "id": 1669, "name": "Return", "src": "1208:42:7" } ], - "id": 1647, + "id": 1670, "name": "Block", "src": "1194:67:7" }, @@ -1625,16 +1625,16 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1628, + "referencedDeclaration": 1651, "type": "bool", "value": "_integrityHashCheck" }, - "id": 1648, + "id": 1671, "name": "Identifier", "src": "1272:19:7" } ], - "id": 1649, + "id": 1672, "name": "UnaryOperation", "src": "1271:20:7" }, @@ -1642,7 +1642,7 @@ "children": [ { "attributes": { - "functionReturnParameters": 1626 + "functionReturnParameters": 1649 }, "children": [ { @@ -1662,11 +1662,11 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1628, + "referencedDeclaration": 1651, "type": "bool", "value": "_integrityHashCheck" }, - "id": 1650, + "id": 1673, "name": "Identifier", "src": "1314:19:7" }, @@ -1676,26 +1676,26 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1592, + "referencedDeclaration": 1615, "type": "string memory", "value": "INVALID_INTEGRITYHASH" }, - "id": 1651, + "id": 1674, "name": "Identifier", "src": "1335:21:7" } ], - "id": 1652, + "id": 1675, "name": "TupleExpression", "src": "1313:44:7" } ], - "id": 1653, + "id": 1676, "name": "Return", "src": "1307:50:7" } ], - "id": 1654, + "id": 1677, "name": "Block", "src": "1293:75:7" }, @@ -1703,7 +1703,7 @@ "children": [ { "attributes": { - "functionReturnParameters": 1626 + "functionReturnParameters": 1649 }, "children": [ { @@ -1730,7 +1730,7 @@ "type": "bool", "value": "true" }, - "id": 1655, + "id": 1678, "name": "Literal", "src": "1395:4:7" }, @@ -1740,51 +1740,51 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1604, + "referencedDeclaration": 1627, "type": "string memory", "value": "VALID_CREDENTIAL" }, - "id": 1656, + "id": 1679, "name": "Identifier", "src": "1401:16:7" } ], - "id": 1657, + "id": 1680, "name": "TupleExpression", "src": "1394:24:7" } ], - "id": 1658, + "id": 1681, "name": "Return", "src": "1388:30:7" } ], - "id": 1659, + "id": 1682, "name": "Block", "src": "1374:55:7" } ], - "id": 1660, + "id": 1683, "name": "IfStatement", "src": "1267:162:7" } ], - "id": 1661, + "id": 1684, "name": "IfStatement", "src": "1172:257:7" } ], - "id": 1662, + "id": 1685, "name": "IfStatement", "src": "1105:324:7" } ], - "id": 1663, + "id": 1686, "name": "Block", "src": "990:445:7" } ], - "id": 1664, + "id": 1687, "name": "FunctionDefinition", "src": "871:564:7" }, @@ -1798,7 +1798,7 @@ ], "name": "verifyCredentialTxn", "payable": false, - "scope": 1729, + "scope": 1752, "stateMutability": "view", "superFunction": null, "visibility": "public" @@ -1810,7 +1810,7 @@ "attributes": { "constant": false, "name": "_txnKey", - "scope": 1728, + "scope": 1751, "stateVariable": false, "storageLocation": "default", "type": "bytes32", @@ -1823,12 +1823,12 @@ "name": "bytes32", "type": "bytes32" }, - "id": 1665, + "id": 1688, "name": "ElementaryTypeName", "src": "1694:7:7" } ], - "id": 1666, + "id": 1689, "name": "VariableDeclaration", "src": "1694:15:7" }, @@ -1836,7 +1836,7 @@ "attributes": { "constant": false, "name": "_recipient", - "scope": 1728, + "scope": 1751, "stateVariable": false, "storageLocation": "default", "type": "address", @@ -1849,17 +1849,17 @@ "name": "address", "type": "address" }, - "id": 1667, + "id": 1690, "name": "ElementaryTypeName", "src": "1711:7:7" } ], - "id": 1668, + "id": 1691, "name": "VariableDeclaration", "src": "1711:18:7" } ], - "id": 1669, + "id": 1692, "name": "ParameterList", "src": "1693:37:7" }, @@ -1869,7 +1869,7 @@ "attributes": { "constant": false, "name": "_revoked", - "scope": 1728, + "scope": 1751, "stateVariable": false, "storageLocation": "default", "type": "bool", @@ -1882,12 +1882,12 @@ "name": "bool", "type": "bool" }, - "id": 1670, + "id": 1693, "name": "ElementaryTypeName", "src": "1755:4:7" } ], - "id": 1671, + "id": 1694, "name": "VariableDeclaration", "src": "1755:13:7" }, @@ -1895,7 +1895,7 @@ "attributes": { "constant": false, "name": "_integrityHashCheck", - "scope": 1728, + "scope": 1751, "stateVariable": false, "storageLocation": "default", "type": "bool", @@ -1908,12 +1908,12 @@ "name": "bool", "type": "bool" }, - "id": 1672, + "id": 1695, "name": "ElementaryTypeName", "src": "1771:4:7" } ], - "id": 1673, + "id": 1696, "name": "VariableDeclaration", "src": "1771:24:7" }, @@ -1921,7 +1921,7 @@ "attributes": { "constant": false, "name": "_recipientCheck", - "scope": 1728, + "scope": 1751, "stateVariable": false, "storageLocation": "default", "type": "bool", @@ -1934,17 +1934,17 @@ "name": "bool", "type": "bool" }, - "id": 1674, + "id": 1697, "name": "ElementaryTypeName", "src": "1797:4:7" } ], - "id": 1675, + "id": 1698, "name": "VariableDeclaration", "src": "1797:20:7" } ], - "id": 1676, + "id": 1699, "name": "ParameterList", "src": "1754:64:7" }, @@ -1953,10 +1953,10 @@ { "attributes": { "assignments": [ - 1677, - 1678, - 1679, - 1680 + 1700, + 1701, + 1702, + 1703 ] }, "children": [ @@ -1964,7 +1964,7 @@ "attributes": { "constant": false, "name": "key", - "scope": 1728, + "scope": 1751, "stateVariable": false, "storageLocation": "default", "type": "bytes32", @@ -1973,7 +1973,7 @@ "visibility": "internal" }, "children": [], - "id": 1677, + "id": 1700, "name": "VariableDeclaration", "src": "1834:3:7" }, @@ -1981,7 +1981,7 @@ "attributes": { "constant": false, "name": "integrityHash", - "scope": 1728, + "scope": 1751, "stateVariable": false, "storageLocation": "default", "type": "bytes32", @@ -1990,7 +1990,7 @@ "visibility": "internal" }, "children": [], - "id": 1678, + "id": 1701, "name": "VariableDeclaration", "src": "1839:13:7" }, @@ -1998,7 +1998,7 @@ "attributes": { "constant": false, "name": "recipient", - "scope": 1728, + "scope": 1751, "stateVariable": false, "storageLocation": "default", "type": "address", @@ -2007,7 +2007,7 @@ "visibility": "internal" }, "children": [], - "id": 1679, + "id": 1702, "name": "VariableDeclaration", "src": "1854:9:7" }, @@ -2015,7 +2015,7 @@ "attributes": { "constant": false, "name": "revoked", - "scope": 1728, + "scope": 1751, "stateVariable": false, "storageLocation": "default", "type": "bool", @@ -2024,7 +2024,7 @@ "visibility": "internal" }, "children": [], - "id": 1680, + "id": 1703, "name": "VariableDeclaration", "src": "1865:7:7" }, @@ -2054,11 +2054,11 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1500, + "referencedDeclaration": 1523, "type": "function (bytes32) view returns (bytes32,bytes32,address,bool)", "value": "getTxn" }, - "id": 1681, + "id": 1704, "name": "Identifier", "src": "1876:6:7" }, @@ -2068,21 +2068,21 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1666, + "referencedDeclaration": 1689, "type": "bytes32", "value": "_txnKey" }, - "id": 1682, + "id": 1705, "name": "Identifier", "src": "1883:7:7" } ], - "id": 1683, + "id": 1706, "name": "FunctionCall", "src": "1876:15:7" } ], - "id": 1684, + "id": 1707, "name": "VariableDeclarationStatement", "src": "1829:62:7" }, @@ -2109,11 +2109,11 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1679, + "referencedDeclaration": 1702, "type": "address", "value": "recipient" }, - "id": 1685, + "id": 1708, "name": "Identifier", "src": "1906:9:7" }, @@ -2123,16 +2123,16 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1607, + "referencedDeclaration": 1630, "type": "address", "value": "NONE" }, - "id": 1686, + "id": 1709, "name": "Identifier", "src": "1919:4:7" } ], - "id": 1687, + "id": 1710, "name": "BinaryOperation", "src": "1906:17:7" }, @@ -2140,7 +2140,7 @@ "children": [ { "attributes": { - "functionReturnParameters": 1676 + "functionReturnParameters": 1699 }, "children": [ { @@ -2167,7 +2167,7 @@ "type": "bool", "value": "true" }, - "id": 1688, + "id": 1711, "name": "Literal", "src": "1946:4:7" }, @@ -2184,7 +2184,7 @@ "type": "bool", "value": "false" }, - "id": 1689, + "id": 1712, "name": "Literal", "src": "1952:5:7" }, @@ -2201,22 +2201,22 @@ "type": "bool", "value": "false" }, - "id": 1690, + "id": 1713, "name": "Literal", "src": "1959:5:7" } ], - "id": 1691, + "id": 1714, "name": "TupleExpression", "src": "1945:20:7" } ], - "id": 1692, + "id": 1715, "name": "Return", "src": "1939:26:7" } ], - "id": 1693, + "id": 1716, "name": "Block", "src": "1925:51:7" }, @@ -2231,11 +2231,11 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1680, + "referencedDeclaration": 1703, "type": "bool", "value": "revoked" }, - "id": 1694, + "id": 1717, "name": "Identifier", "src": "1986:7:7" }, @@ -2243,7 +2243,7 @@ "children": [ { "attributes": { - "functionReturnParameters": 1676 + "functionReturnParameters": 1699 }, "children": [ { @@ -2263,11 +2263,11 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1680, + "referencedDeclaration": 1703, "type": "bool", "value": "revoked" }, - "id": 1695, + "id": 1718, "name": "Identifier", "src": "2016:7:7" }, @@ -2284,7 +2284,7 @@ "type": "bool", "value": "false" }, - "id": 1696, + "id": 1719, "name": "Literal", "src": "2025:5:7" }, @@ -2301,39 +2301,39 @@ "type": "bool", "value": "false" }, - "id": 1697, + "id": 1720, "name": "Literal", "src": "2032:5:7" } ], - "id": 1698, + "id": 1721, "name": "TupleExpression", "src": "2015:23:7" } ], - "id": 1699, + "id": 1722, "name": "Return", "src": "2009:29:7" } ], - "id": 1700, + "id": 1723, "name": "Block", "src": "1995:54:7" } ], - "id": 1701, + "id": 1724, "name": "IfStatement", "src": "1982:67:7" } ], - "id": 1702, + "id": 1725, "name": "IfStatement", "src": "1902:147:7" }, { "attributes": { "assignments": [ - 1704 + 1727 ] }, "children": [ @@ -2341,7 +2341,7 @@ "attributes": { "constant": false, "name": "holder", - "scope": 1728, + "scope": 1751, "stateVariable": false, "storageLocation": "default", "type": "contract Holder", @@ -2353,15 +2353,15 @@ "attributes": { "contractScope": null, "name": "Holder", - "referencedDeclaration": 1113, + "referencedDeclaration": 1136, "type": "contract Holder" }, - "id": 1703, + "id": 1726, "name": "UserDefinedTypeName", "src": "2059:6:7" } ], - "id": 1704, + "id": 1727, "name": "VariableDeclaration", "src": "2059:13:7" }, @@ -2391,11 +2391,11 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1113, + "referencedDeclaration": 1136, "type": "type(contract Holder)", "value": "Holder" }, - "id": 1705, + "id": 1728, "name": "Identifier", "src": "2075:6:7" }, @@ -2405,28 +2405,28 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1668, + "referencedDeclaration": 1691, "type": "address", "value": "_recipient" }, - "id": 1706, + "id": 1729, "name": "Identifier", "src": "2082:10:7" } ], - "id": 1707, + "id": 1730, "name": "FunctionCall", "src": "2075:18:7" } ], - "id": 1708, + "id": 1731, "name": "VariableDeclarationStatement", "src": "2059:34:7" }, { "attributes": { "assignments": [ - 1710 + 1733 ] }, "children": [ @@ -2434,7 +2434,7 @@ "attributes": { "constant": false, "name": "_integrityHash", - "scope": 1728, + "scope": 1751, "stateVariable": false, "storageLocation": "default", "type": "bytes32", @@ -2447,12 +2447,12 @@ "name": "bytes32", "type": "bytes32" }, - "id": 1709, + "id": 1732, "name": "ElementaryTypeName", "src": "2103:7:7" } ], - "id": 1710, + "id": 1733, "name": "VariableDeclaration", "src": "2103:22:7" }, @@ -2484,7 +2484,7 @@ "isPure": false, "lValueRequested": false, "member_name": "recomputePOIHash", - "referencedDeclaration": 1112, + "referencedDeclaration": 1135, "type": "function (bytes32) view external returns (bytes32)" }, "children": [ @@ -2494,16 +2494,16 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1704, + "referencedDeclaration": 1727, "type": "contract Holder", "value": "holder" }, - "id": 1711, + "id": 1734, "name": "Identifier", "src": "2128:6:7" } ], - "id": 1712, + "id": 1735, "name": "MemberAccess", "src": "2128:23:7" }, @@ -2513,27 +2513,27 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1677, + "referencedDeclaration": 1700, "type": "bytes32", "value": "key" }, - "id": 1713, + "id": 1736, "name": "Identifier", "src": "2152:3:7" } ], - "id": 1714, + "id": 1737, "name": "FunctionCall", "src": "2128:28:7" } ], - "id": 1715, + "id": 1738, "name": "VariableDeclarationStatement", "src": "2103:53:7" }, { "attributes": { - "functionReturnParameters": 1676 + "functionReturnParameters": 1699 }, "children": [ { @@ -2553,11 +2553,11 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1680, + "referencedDeclaration": 1703, "type": "bool", "value": "revoked" }, - "id": 1716, + "id": 1739, "name": "Identifier", "src": "2173:7:7" }, @@ -2593,11 +2593,11 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1710, + "referencedDeclaration": 1733, "type": "bytes32", "value": "_integrityHash" }, - "id": 1717, + "id": 1740, "name": "Identifier", "src": "2195:14:7" }, @@ -2607,21 +2607,21 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1678, + "referencedDeclaration": 1701, "type": "bytes32", "value": "integrityHash" }, - "id": 1718, + "id": 1741, "name": "Identifier", "src": "2213:13:7" } ], - "id": 1719, + "id": 1742, "name": "BinaryOperation", "src": "2195:31:7" } ], - "id": 1720, + "id": 1743, "name": "TupleExpression", "src": "2194:33:7" }, @@ -2657,11 +2657,11 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1668, + "referencedDeclaration": 1691, "type": "address", "value": "_recipient" }, - "id": 1721, + "id": 1744, "name": "Identifier", "src": "2242:10:7" }, @@ -2671,51 +2671,51 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1679, + "referencedDeclaration": 1702, "type": "address", "value": "recipient" }, - "id": 1722, + "id": 1745, "name": "Identifier", "src": "2256:9:7" } ], - "id": 1723, + "id": 1746, "name": "BinaryOperation", "src": "2242:23:7" } ], - "id": 1724, + "id": 1747, "name": "TupleExpression", "src": "2241:25:7" } ], - "id": 1725, + "id": 1748, "name": "TupleExpression", "src": "2172:104:7" } ], - "id": 1726, + "id": 1749, "name": "Return", "src": "2166:110:7" } ], - "id": 1727, + "id": 1750, "name": "Block", "src": "1819:464:7" } ], - "id": 1728, + "id": 1751, "name": "FunctionDefinition", "src": "1665:618:7" } ], - "id": 1729, + "id": 1752, "name": "ContractDefinition", "src": "85:2201:7" } ], - "id": 1730, + "id": 1753, "name": "SourceUnit", "src": "0:2287:7" }, @@ -2725,5 +2725,5 @@ }, "networks": {}, "schemaVersion": "1.0.1", - "updatedAt": "2018-01-14T11:06:54.643Z" + "updatedAt": "2018-01-16T07:16:25.773Z" } \ No newline at end of file diff --git a/contracts/Holder.sol b/contracts/Holder.sol index d6d073f..7f0c687 100644 --- a/contracts/Holder.sol +++ b/contracts/Holder.sol @@ -91,17 +91,22 @@ contract Holder is BFUtils { } event CredentialRejected(bytes32 _txnKey); - function rejectCredential(bytes32 _txnKey) authorized(msg.sender) public { + function rejectCredential(bytes32 _txnKey) authorized(msg.sender) public returns(bool success) { require(!credentialVault.credentials[_txnKey].active); - _deleteCredential(_txnKey); credentialVault.numOfPendingCreds--; CredentialRejected(_txnKey); + return _deleteCredential(_txnKey); } event CredentialDeleted(bytes32 _txnKey, uint count); /// @notice delete a credential function deleteCredential(bytes32 _txnKey) authorized(msg.sender) public returns(bool success) { - success = _deleteCredential(_txnKey); + BadgeLibrary.Credential memory cred = credentialVault.credentials[_txnKey]; + if(!cred.active) { + success = rejectCredential(_txnKey); + } else { + success = _deleteCredential(_txnKey); + } CredentialDeleted(_txnKey, credentialVault.keys.length); return success; }