{
  "contractName": "PandoRepository",
  "abi": [
    {
      "constant": true,
      "inputs": [],
      "name": "SORT_PR_ROLE",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "name",
      "outputs": [
        {
          "name": "",
          "type": "string"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "hasInitialized",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "PRsLength",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "UPDATE_INFORMATIONS_ROLE",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_script",
          "type": "bytes"
        }
      ],
      "name": "getEVMScriptExecutor",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "getRecoveryVault",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "OPEN_PR_ROLE",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "description",
      "outputs": [
        {
          "name": "",
          "type": "string"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "token",
          "type": "address"
        }
      ],
      "name": "allowRecoverability",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "appId",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "getInitializationBlock",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_token",
          "type": "address"
        }
      ],
      "name": "transferToVault",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_sender",
          "type": "address"
        },
        {
          "name": "_role",
          "type": "bytes32"
        },
        {
          "name": "_params",
          "type": "uint256[]"
        }
      ],
      "name": "canPerform",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "getEVMScriptRegistry",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "PUSH_ROLE",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "kernel",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "isPetrified",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "name": "PRs",
      "outputs": [
        {
          "name": "state",
          "type": "uint8"
        },
        {
          "name": "author",
          "type": "address"
        },
        {
          "name": "title",
          "type": "string"
        },
        {
          "name": "description",
          "type": "string"
        },
        {
          "name": "ref",
          "type": "string"
        },
        {
          "name": "hash",
          "type": "string"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "name": "ref",
          "type": "string"
        },
        {
          "indexed": false,
          "name": "hash",
          "type": "string"
        }
      ],
      "name": "UpdateRef",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "id",
          "type": "uint256"
        },
        {
          "indexed": false,
          "name": "author",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "title",
          "type": "string"
        },
        {
          "indexed": false,
          "name": "description",
          "type": "string"
        },
        {
          "indexed": false,
          "name": "ref",
          "type": "string"
        },
        {
          "indexed": false,
          "name": "hash",
          "type": "string"
        }
      ],
      "name": "OpenPR",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "id",
          "type": "uint256"
        }
      ],
      "name": "MergePR",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "id",
          "type": "uint256"
        }
      ],
      "name": "RejectPR",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "name": "name",
          "type": "string"
        },
        {
          "indexed": false,
          "name": "description",
          "type": "string"
        }
      ],
      "name": "UpdateInformations",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "executor",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "script",
          "type": "bytes"
        },
        {
          "indexed": false,
          "name": "input",
          "type": "bytes"
        },
        {
          "indexed": false,
          "name": "returnData",
          "type": "bytes"
        }
      ],
      "name": "ScriptResult",
      "type": "event"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_name",
          "type": "string"
        },
        {
          "name": "_description",
          "type": "string"
        }
      ],
      "name": "initialize",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_ref",
          "type": "string"
        },
        {
          "name": "_hash",
          "type": "string"
        }
      ],
      "name": "push",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_title",
          "type": "string"
        },
        {
          "name": "_description",
          "type": "string"
        },
        {
          "name": "_ref",
          "type": "string"
        },
        {
          "name": "_hash",
          "type": "string"
        }
      ],
      "name": "openPR",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_id",
          "type": "uint256"
        }
      ],
      "name": "mergePR",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_id",
          "type": "uint256"
        }
      ],
      "name": "rejectPR",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_name",
          "type": "string"
        },
        {
          "name": "_description",
          "type": "string"
        }
      ],
      "name": "updateInformations",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_ref",
          "type": "string"
        }
      ],
      "name": "ref",
      "outputs": [
        {
          "name": "hash",
          "type": "string"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_id",
          "type": "uint256"
        }
      ],
      "name": "canSortPR",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "bytecode": "0x60806040526200001d62000023640100000000026401000000009004565b620002ef565b60006200003e620000f8640100000000026401000000009004565b146040805190810160405280601881526020017f494e49545f414c52454144595f494e495449414c495a45440000000000000000815250901515620000bb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620000b2919062000279565b60405180910390fd5b50620000f67fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff62000145640100000000026401000000009004565b565b6000620001407febb05b386a8d34882b8711d156f463690983dc47815980fb82aeeff1aa43579e600102600019166200022b6401000000000262001f6e176401000000009004565b905090565b600062000160620000f8640100000000026401000000009004565b146040805190810160405280601881526020017f494e49545f414c52454144595f494e495449414c495a45440000000000000000815250901515620001dd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620001d4919062000279565b60405180910390fd5b5062000228817febb05b386a8d34882b8711d156f463690983dc47815980fb82aeeff1aa43579e600102600019166200023664010000000002620022b1179091906401000000009004565b50565b600081549050919050565b8082555050565b60006200024a826200029d565b80845262000260816020860160208601620002a8565b6200026b81620002de565b602085010191505092915050565b600060208201905081810360008301526200029581846200023d565b905092915050565b600081519050919050565b60005b83811015620002c8578082015181840152602081019050620002ab565b83811115620002d8576000848401525b50505050565b6000601f19601f8301169050919050565b612f1480620002ff6000396000f30060806040526004361061015f576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063040c14111461016457806306fdde031461018f5780630803fac0146101ba57806312880e49146101e5578063278e8afd146102105780632902edef146102395780632914b9bd1461026457806332f0a3b5146102a15780634cd88b76146102cc5780634ef30cbc146102f55780636dc7dec6146103325780637284e4161461035d5780637c51f84e146103885780637e7db6e1146103b157806380afdea8146103ee5780638b3dd749146104195780639c373a77146104445780639d4941d81461046d578063a1658fad14610496578063a1ad644c146104d3578063a479e50814610510578063b2d147f81461053b578063d4aae0c414610566578063d58730ff14610591578063de4796ed146105ba578063f27d23d1146105e5578063f876137614610627575b600080fd5b34801561017057600080fd5b50610179610650565b6040516101869190612ad2565b60405180910390f35b34801561019b57600080fd5b506101a4610689565b6040516101b19190612c21565b60405180910390f35b3480156101c657600080fd5b506101cf610727565b6040516101dc9190612ab7565b60405180910390f35b3480156101f157600080fd5b506101fa610752565b6040516102079190612c9c565b60405180910390f35b34801561021c57600080fd5b50610237600480360361023291908101906126b2565b610758565b005b34801561024557600080fd5b5061024e6108b8565b60405161025b9190612ad2565b60405180910390f35b34801561027057600080fd5b5061028b60048036036102869190810190612648565b6108f1565b6040516102989190612b38565b60405180910390f35b3480156102ad57600080fd5b506102b66109a8565b6040516102c391906129b8565b60405180910390f35b3480156102d857600080fd5b506102f360048036036102ee91908101906126b2565b610a52565b005b34801561030157600080fd5b5061031c6004803603610317919081019061283d565b610b53565b6040516103299190612ab7565b60405180910390f35b34801561033e57600080fd5b50610347610bce565b6040516103549190612ad2565b60405180910390f35b34801561036957600080fd5b50610372610c07565b60405161037f9190612c21565b60405180910390f35b34801561039457600080fd5b506103af60048036036103aa9190810190612727565b610ca5565b005b3480156103bd57600080fd5b506103d860048036036103d39190810190612566565b610e70565b6040516103e59190612ab7565b60405180910390f35b3480156103fa57600080fd5b50610403610e7b565b6040516104109190612ad2565b60405180910390f35b34801561042557600080fd5b5061042e610eb2565b60405161043b9190612c9c565b60405180910390f35b34801561045057600080fd5b5061046b6004803603610466919081019061283d565b610ee9565b005b34801561047957600080fd5b50610494600480360361048f9190810190612566565b611064565b005b3480156104a257600080fd5b506104bd60048036036104b891908101906125b8565b611368565b6040516104ca9190612ab7565b60405180910390f35b3480156104df57600080fd5b506104fa60048036036104f591908101906127fc565b611495565b6040516105079190612c43565b60405180910390f35b34801561051c57600080fd5b506105256115a2565b6040516105329190612b53565b60405180910390f35b34801561054757600080fd5b506105506116a4565b60405161055d9190612ad2565b60405180910390f35b34801561057257600080fd5b5061057b6116dd565b6040516105889190612b6e565b60405180910390f35b34801561059d57600080fd5b506105b860048036036105b3919081019061283d565b611714565b005b3480156105c657600080fd5b506105cf61188f565b6040516105dc9190612ab7565b60405180910390f35b3480156105f157600080fd5b5061060c6004803603610607919081019061283d565b6118c0565b60405161061e96959493929190612ba4565b60405180910390f35b34801561063357600080fd5b5061064e600480360361064991908101906126b2565b611b89565b005b60405180807f534f52545f50525f524f4c450000000000000000000000000000000000000000815250600c019050604051809103902081565b60008054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561071f5780601f106106f45761010080835404028352916020019161071f565b820191906000526020600020905b81548152906001019060200180831161070257829003601f168201915b505050505081565b600080610732610eb2565b90506000811415801561074c575080610749611ce9565b10155b91505090565b60045481565b60405180807f5550444154455f494e464f524d4154494f4e535f524f4c450000000000000000815250601801905060405180910390206107c9338260006040519080825280602002602001820160405280156107c35781602001602082028038833980820191505090505b50611368565b6040805190810160405280600f81526020017f4150505f415554485f4641494c45440000000000000000000000000000000000815250901515610842576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108399190612c21565b60405180910390fd5b506108b185858080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505084848080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050611cf1565b5050505050565b60405180807f5550444154455f494e464f524d4154494f4e535f524f4c4500000000000000008152506018019050604051809103902081565b60006108fb6115a2565b73ffffffffffffffffffffffffffffffffffffffff166304bf2a7f836040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040161094f9190612b16565b602060405180830381600087803b15801561096957600080fd5b505af115801561097d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506109a19190810190612689565b9050919050565b60006109b26116dd565b73ffffffffffffffffffffffffffffffffffffffff166332f0a3b56040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015610a1557600080fd5b505af1158015610a29573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610a4d919081019061258f565b905090565b6000610a5c610eb2565b146040805190810160405280601881526020017f494e49545f414c52454144595f494e495449414c495a45440000000000000000815250901515610ad6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610acd9190612c21565b60405180910390fd5b50610adf611d5c565b610b4d84848080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505083838080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050611cf1565b50505050565b6000806001831080610b66575060045483115b15610b745760009150610bc8565b60036000848152602001908152602001600020905060006002811115610b9657fe5b8160000160009054906101000a900460ff166002811115610bb357fe5b141515610bc35760009150610bc8565b600191505b50919050565b60405180807f4f50454e5f50525f524f4c450000000000000000000000000000000000000000815250600c019050604051809103902081565b60018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610c9d5780601f10610c7257610100808354040283529160200191610c9d565b820191906000526020600020905b815481529060010190602001808311610c8057829003601f168201915b505050505081565b60405180807f4f50454e5f50525f524f4c450000000000000000000000000000000000000000815250600c0190506040518091039020610d1633826000604051908082528060200260200182016040528015610d105781602001602082028038833980820191505090505b50611368565b6040805190810160405280600f81526020017f4150505f415554485f4641494c45440000000000000000000000000000000000815250901515610d8f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d869190612c21565b60405180910390fd5b50610e65338a8a8080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505089898080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505088888080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505087878080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050611e24565b505050505050505050565b600060019050919050565b6000610ead7fd625496217aa6a3453eecb9c3489dc5a53e6c67b444329ea2b2cbc9ff547639b60010260001916611f63565b905090565b6000610ee47febb05b386a8d34882b8711d156f463690983dc47815980fb82aeeff1aa43579e60010260001916611f6e565b905090565b60405180807f534f52545f50525f524f4c450000000000000000000000000000000000000000815250600c0190506040518091039020610f5a33826000604051908082528060200260200182016040528015610f545781602001602082028038833980820191505090505b50611368565b6040805190810160405280600f81526020017f4150505f415554485f4641494c45440000000000000000000000000000000000815250901515610fd3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fca9190612c21565b60405180910390fd5b50610fdd82610b53565b6040805190810160405280601381526020017f5245504f5f43414e4e4f545f534f52545f505200000000000000000000000000815250901515611056576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104d9190612c21565b60405180910390fd5b5061106082611f79565b5050565b60008061107083610e70565b6040805190810160405280601281526020017f5245434f5645525f444953414c4c4f57454400000000000000000000000000008152509015156110e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110e09190612c21565b60405180910390fd5b506110f26109a8565b91506110fd82612129565b6040805190810160405280601a81526020017f5245434f5645525f5641554c545f4e4f545f434f4e5452414354000000000000815250901515611176576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116d9190612c21565b60405180910390fd5b50600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561120f578173ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f19350505050158015611209573d6000803e3d6000fd5b50611363565b8273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004016112649190612b89565b602060405180830381600087803b15801561127e57600080fd5b505af1158015611292573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506112b69190810190612866565b90508273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040161130f929190612a8e565b602060405180830381600087803b15801561132957600080fd5b505af115801561133d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611361919081019061261f565b505b505050565b60008060606000611377610727565b1515611386576000935061148b565b61138e6116dd565b9250600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156113ce576000935061148b565b602085510290508491508082528273ffffffffffffffffffffffffffffffffffffffff1663fdef9106883089866040518563ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040161143694939291906129d3565b602060405180830381600087803b15801561145057600080fd5b505af1158015611464573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611488919081019061261f565b93505b5050509392505050565b60606002826040518082805190602001908083835b6020831015156114cf57805182526020820191506020810190506020830392506114aa565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405180910390208054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156115965780601f1061156b57610100808354040283529160200191611596565b820191906000526020600020905b81548152906001019060200180831161157957829003601f168201915b50505050509050919050565b6000806115ad6116dd565b73ffffffffffffffffffffffffffffffffffffffff1663be00bbd87fd6f028ca0e8edb4a8c9757ca4fdccab25fa1e0317da1188108f7d2dee14902fb6001027fddbcfd564f642ab5627cf68b9b7d374fb4f8a36e941a75d89c87998cef03bd616001026040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401611649929190612aed565b602060405180830381600087803b15801561166357600080fd5b505af1158015611677573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061169b919081019061258f565b90508091505090565b60405180807f505553485f524f4c4500000000000000000000000000000000000000000000008152506009019050604051809103902081565b600061170f7f4172f0f7d2289153072b0a6ca36959e0cbe2efc3afe50fc81636caa96338137b6001026000191661217b565b905090565b60405180807f534f52545f50525f524f4c450000000000000000000000000000000000000000815250600c01905060405180910390206117853382600060405190808252806020026020018201604052801561177f5781602001602082028038833980820191505090505b50611368565b6040805190810160405280600f81526020017f4150505f415554485f4641494c454400000000000000000000000000000000008152509015156117fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117f59190612c21565b60405180910390fd5b5061180882610b53565b6040805190810160405280601381526020017f5245504f5f43414e4e4f545f534f52545f505200000000000000000000000000815250901515611881576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118789190612c21565b60405180910390fd5b5061188b82612186565b5050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6118ba610eb2565b14905090565b60036020528060005260406000206000915090508060000160009054906101000a900460ff16908060000160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690806001018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156119a55780601f1061197a576101008083540402835291602001916119a5565b820191906000526020600020905b81548152906001019060200180831161198857829003601f168201915b505050505090806002018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611a435780601f10611a1857610100808354040283529160200191611a43565b820191906000526020600020905b815481529060010190602001808311611a2657829003601f168201915b505050505090806003018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611ae15780601f10611ab657610100808354040283529160200191611ae1565b820191906000526020600020905b815481529060010190602001808311611ac457829003601f168201915b505050505090806004018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b7f5780601f10611b5457610100808354040283529160200191611b7f565b820191906000526020600020905b815481529060010190602001808311611b6257829003601f168201915b5050505050905086565b60405180807f505553485f524f4c45000000000000000000000000000000000000000000000081525060090190506040518091039020611bfa33826000604051908082528060200260200182016040528015611bf45781602001602082028038833980820191505090505b50611368565b6040805190810160405280600f81526020017f4150505f415554485f4641494c45440000000000000000000000000000000000815250901515611c73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c6a9190612c21565b60405180910390fd5b50611ce285858080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505084848080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050506121f4565b5050505050565b600043905090565b8160009080519060200190611d079291906122b8565b508060019080519060200190611d1e9291906122b8565b507f5afc369ecb1aa3c062e62ec2fe583f595d744860a2b2cf4f1afc1c223c0871fe8282604051611d50929190612c65565b60405180910390a15050565b6000611d66610eb2565b146040805190810160405280601881526020017f494e49545f414c52454144595f494e495449414c495a45440000000000000000815250901515611de0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dd79190612c21565b60405180910390fd5b50611e22611dec611ce9565b7febb05b386a8d34882b8711d156f463690983dc47815980fb82aeeff1aa43579e600102600019166122b190919063ffffffff16565b565b600080600160045401600481905550600454915060036000838152602001908152602001600020905060008160000160006101000a81548160ff02191690836002811115611e6e57fe5b0217905550868160000160016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555085816001019080519060200190611ece9291906122b8565b5084816002019080519060200190611ee79291906122b8565b5083816003019080519060200190611f009291906122b8565b5082816004019080519060200190611f199291906122b8565b50817f4277b8ff3981b7253f0989df2f6b53ec4007191a4d31c247f20b1e36e3465f878888888888604051611f52959493929190612a1f565b60405180910390a250505050505050565b600081549050919050565b600081549050919050565b600060036000838152602001908152602001600020905060018160000160006101000a81548160ff02191690836002811115611fb157fe5b02179055506120f8816003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156120515780601f1061202657610100808354040283529160200191612051565b820191906000526020600020905b81548152906001019060200180831161203457829003601f168201915b5050505050826004018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156120ee5780601f106120c3576101008083540402835291602001916120ee565b820191906000526020600020905b8154815290600101906020018083116120d157829003601f168201915b50505050506121f4565b817f95bccfc2309f7925fb99e0e146f85e685917706bb163c2d5a217c609c7fda94460405160405180910390a25050565b600080600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561216a5760009150612175565b823b90506000811191505b50919050565b600081549050919050565b600060036000838152602001908152602001600020905060028160000160006101000a81548160ff021916908360028111156121be57fe5b0217905550817f854070939479d06d7ec6a239e445f35f8e5691c32a10231387786f936405e3c360405160405180910390a25050565b806002836040518082805190602001908083835b60208310151561222d5780518252602082019150602081019050602083039250612208565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902090805190602001906122739291906122b8565b507fb2eaa3874505c5677f2ece58bc42352903fed51dc88695036bc5534e6d75173182826040516122a5929190612c65565b60405180910390a15050565b8082555050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106122f957805160ff1916838001178555612327565b82800160010185558215612327579182015b8281111561232657825182559160200191906001019061230b565b5b5090506123349190612338565b5090565b61235a91905b8082111561235657600081600090555060010161233e565b5090565b90565b60006123698235612ddb565b905092915050565b600061237d8251612ddb565b905092915050565b600082601f830112151561239857600080fd5b81356123ab6123a682612ce4565b612cb7565b915081818352602084019350602081019050838560208402820111156123d057600080fd5b60005b8381101561240057816123e6888261253e565b8452602084019350602083019250506001810190506123d3565b5050505092915050565b60006124168251612dfb565b905092915050565b600061242a8235612e07565b905092915050565b600082601f830112151561244557600080fd5b813561245861245382612d0c565b612cb7565b9150808252602083016020830185838301111561247457600080fd5b61247f838284612e87565b50505092915050565b60006124948251612e11565b905092915050565b60008083601f84011215156124b057600080fd5b8235905067ffffffffffffffff8111156124c957600080fd5b6020830191508360018202830111156124e157600080fd5b9250929050565b600082601f83011215156124fb57600080fd5b813561250e61250982612d38565b612cb7565b9150808252602083016020830185838301111561252a57600080fd5b612535838284612e87565b50505092915050565b600061254a8235612e23565b905092915050565b600061255e8251612e23565b905092915050565b60006020828403121561257857600080fd5b60006125868482850161235d565b91505092915050565b6000602082840312156125a157600080fd5b60006125af84828501612371565b91505092915050565b6000806000606084860312156125cd57600080fd5b60006125db8682870161235d565b93505060206125ec8682870161241e565b925050604084013567ffffffffffffffff81111561260957600080fd5b61261586828701612385565b9150509250925092565b60006020828403121561263157600080fd5b600061263f8482850161240a565b91505092915050565b60006020828403121561265a57600080fd5b600082013567ffffffffffffffff81111561267457600080fd5b61268084828501612432565b91505092915050565b60006020828403121561269b57600080fd5b60006126a984828501612488565b91505092915050565b600080600080604085870312156126c857600080fd5b600085013567ffffffffffffffff8111156126e257600080fd5b6126ee8782880161249c565b9450945050602085013567ffffffffffffffff81111561270d57600080fd5b6127198782880161249c565b925092505092959194509250565b6000806000806000806000806080898b03121561274357600080fd5b600089013567ffffffffffffffff81111561275d57600080fd5b6127698b828c0161249c565b9850985050602089013567ffffffffffffffff81111561278857600080fd5b6127948b828c0161249c565b9650965050604089013567ffffffffffffffff8111156127b357600080fd5b6127bf8b828c0161249c565b9450945050606089013567ffffffffffffffff8111156127de57600080fd5b6127ea8b828c0161249c565b92509250509295985092959890939650565b60006020828403121561280e57600080fd5b600082013567ffffffffffffffff81111561282857600080fd5b612834848285016124e8565b91505092915050565b60006020828403121561284f57600080fd5b600061285d8482850161253e565b91505092915050565b60006020828403121561287857600080fd5b600061288684828501612552565b91505092915050565b61289881612d85565b82525050565b6128a781612da5565b82525050565b6128b681612db1565b82525050565b60006128c782612d64565b8084526128db816020860160208601612e96565b6128e481612ec9565b602085010191505092915050565b6128fb81612e2d565b82525050565b61290a81612e3f565b82525050565b61291981612e51565b82525050565b61292881612e63565b82525050565b61293781612e75565b82525050565b600061294882612d7a565b80845261295c816020860160208601612e96565b61296581612ec9565b602085010191505092915050565b600061297e82612d6f565b808452612992816020860160208601612e96565b61299b81612ec9565b602085010191505092915050565b6129b281612dd1565b82525050565b60006020820190506129cd600083018461288f565b92915050565b60006080820190506129e8600083018761288f565b6129f5602083018661288f565b612a0260408301856128ad565b8181036060830152612a1481846128bc565b905095945050505050565b600060a082019050612a34600083018861288f565b8181036020830152612a46818761293d565b90508181036040830152612a5a818661293d565b90508181036060830152612a6e818561293d565b90508181036080830152612a82818461293d565b90509695505050505050565b6000604082019050612aa3600083018561288f565b612ab060208301846129a9565b9392505050565b6000602082019050612acc600083018461289e565b92915050565b6000602082019050612ae760008301846128ad565b92915050565b6000604082019050612b0260008301856128ad565b612b0f60208301846128ad565b9392505050565b60006020820190508181036000830152612b3081846128bc565b905092915050565b6000602082019050612b4d60008301846128f2565b92915050565b6000602082019050612b686000830184612901565b92915050565b6000602082019050612b836000830184612910565b92915050565b6000602082019050612b9e600083018461291f565b92915050565b600060c082019050612bb9600083018961292e565b612bc6602083018861288f565b8181036040830152612bd88187612973565b90508181036060830152612bec8186612973565b90508181036080830152612c008185612973565b905081810360a0830152612c148184612973565b9050979650505050505050565b60006020820190508181036000830152612c3b8184612973565b905092915050565b60006020820190508181036000830152612c5d818461293d565b905092915050565b60006040820190508181036000830152612c7f818561293d565b90508181036020830152612c93818461293d565b90509392505050565b6000602082019050612cb160008301846129a9565b92915050565b6000604051905081810181811067ffffffffffffffff82111715612cda57600080fd5b8060405250919050565b600067ffffffffffffffff821115612cfb57600080fd5b602082029050602081019050919050565b600067ffffffffffffffff821115612d2357600080fd5b601f19601f8301169050602081019050919050565b600067ffffffffffffffff821115612d4f57600080fd5b601f19601f8301169050602081019050919050565b600081519050919050565b600081519050919050565b600081519050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60008115159050919050565b6000819050919050565b6000600382101515612dc957fe5b819050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60008115159050919050565b6000819050919050565b6000612e1c82612d85565b9050919050565b6000819050919050565b6000612e3882612d85565b9050919050565b6000612e4a82612d85565b9050919050565b6000612e5c82612d85565b9050919050565b6000612e6e82612d85565b9050919050565b6000612e8082612dbb565b9050919050565b82818337600083830152505050565b60005b83811015612eb4578082015181840152602081019050612e99565b83811115612ec3576000848401525b50505050565b6000601f19601f83011690509190505600a265627a7a723058202d55a3bb4e8eca679c2afc90035528168b68d123ccac3201c1578cc64b915b326c6578706572696d656e74616cf50037",
  "deployedBytecode": "0x60806040526004361061015f576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063040c14111461016457806306fdde031461018f5780630803fac0146101ba57806312880e49146101e5578063278e8afd146102105780632902edef146102395780632914b9bd1461026457806332f0a3b5146102a15780634cd88b76146102cc5780634ef30cbc146102f55780636dc7dec6146103325780637284e4161461035d5780637c51f84e146103885780637e7db6e1146103b157806380afdea8146103ee5780638b3dd749146104195780639c373a77146104445780639d4941d81461046d578063a1658fad14610496578063a1ad644c146104d3578063a479e50814610510578063b2d147f81461053b578063d4aae0c414610566578063d58730ff14610591578063de4796ed146105ba578063f27d23d1146105e5578063f876137614610627575b600080fd5b34801561017057600080fd5b50610179610650565b6040516101869190612ad2565b60405180910390f35b34801561019b57600080fd5b506101a4610689565b6040516101b19190612c21565b60405180910390f35b3480156101c657600080fd5b506101cf610727565b6040516101dc9190612ab7565b60405180910390f35b3480156101f157600080fd5b506101fa610752565b6040516102079190612c9c565b60405180910390f35b34801561021c57600080fd5b50610237600480360361023291908101906126b2565b610758565b005b34801561024557600080fd5b5061024e6108b8565b60405161025b9190612ad2565b60405180910390f35b34801561027057600080fd5b5061028b60048036036102869190810190612648565b6108f1565b6040516102989190612b38565b60405180910390f35b3480156102ad57600080fd5b506102b66109a8565b6040516102c391906129b8565b60405180910390f35b3480156102d857600080fd5b506102f360048036036102ee91908101906126b2565b610a52565b005b34801561030157600080fd5b5061031c6004803603610317919081019061283d565b610b53565b6040516103299190612ab7565b60405180910390f35b34801561033e57600080fd5b50610347610bce565b6040516103549190612ad2565b60405180910390f35b34801561036957600080fd5b50610372610c07565b60405161037f9190612c21565b60405180910390f35b34801561039457600080fd5b506103af60048036036103aa9190810190612727565b610ca5565b005b3480156103bd57600080fd5b506103d860048036036103d39190810190612566565b610e70565b6040516103e59190612ab7565b60405180910390f35b3480156103fa57600080fd5b50610403610e7b565b6040516104109190612ad2565b60405180910390f35b34801561042557600080fd5b5061042e610eb2565b60405161043b9190612c9c565b60405180910390f35b34801561045057600080fd5b5061046b6004803603610466919081019061283d565b610ee9565b005b34801561047957600080fd5b50610494600480360361048f9190810190612566565b611064565b005b3480156104a257600080fd5b506104bd60048036036104b891908101906125b8565b611368565b6040516104ca9190612ab7565b60405180910390f35b3480156104df57600080fd5b506104fa60048036036104f591908101906127fc565b611495565b6040516105079190612c43565b60405180910390f35b34801561051c57600080fd5b506105256115a2565b6040516105329190612b53565b60405180910390f35b34801561054757600080fd5b506105506116a4565b60405161055d9190612ad2565b60405180910390f35b34801561057257600080fd5b5061057b6116dd565b6040516105889190612b6e565b60405180910390f35b34801561059d57600080fd5b506105b860048036036105b3919081019061283d565b611714565b005b3480156105c657600080fd5b506105cf61188f565b6040516105dc9190612ab7565b60405180910390f35b3480156105f157600080fd5b5061060c6004803603610607919081019061283d565b6118c0565b60405161061e96959493929190612ba4565b60405180910390f35b34801561063357600080fd5b5061064e600480360361064991908101906126b2565b611b89565b005b60405180807f534f52545f50525f524f4c450000000000000000000000000000000000000000815250600c019050604051809103902081565b60008054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561071f5780601f106106f45761010080835404028352916020019161071f565b820191906000526020600020905b81548152906001019060200180831161070257829003601f168201915b505050505081565b600080610732610eb2565b90506000811415801561074c575080610749611ce9565b10155b91505090565b60045481565b60405180807f5550444154455f494e464f524d4154494f4e535f524f4c450000000000000000815250601801905060405180910390206107c9338260006040519080825280602002602001820160405280156107c35781602001602082028038833980820191505090505b50611368565b6040805190810160405280600f81526020017f4150505f415554485f4641494c45440000000000000000000000000000000000815250901515610842576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108399190612c21565b60405180910390fd5b506108b185858080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505084848080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050611cf1565b5050505050565b60405180807f5550444154455f494e464f524d4154494f4e535f524f4c4500000000000000008152506018019050604051809103902081565b60006108fb6115a2565b73ffffffffffffffffffffffffffffffffffffffff166304bf2a7f836040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040161094f9190612b16565b602060405180830381600087803b15801561096957600080fd5b505af115801561097d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506109a19190810190612689565b9050919050565b60006109b26116dd565b73ffffffffffffffffffffffffffffffffffffffff166332f0a3b56040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015610a1557600080fd5b505af1158015610a29573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610a4d919081019061258f565b905090565b6000610a5c610eb2565b146040805190810160405280601881526020017f494e49545f414c52454144595f494e495449414c495a45440000000000000000815250901515610ad6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610acd9190612c21565b60405180910390fd5b50610adf611d5c565b610b4d84848080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505083838080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050611cf1565b50505050565b6000806001831080610b66575060045483115b15610b745760009150610bc8565b60036000848152602001908152602001600020905060006002811115610b9657fe5b8160000160009054906101000a900460ff166002811115610bb357fe5b141515610bc35760009150610bc8565b600191505b50919050565b60405180807f4f50454e5f50525f524f4c450000000000000000000000000000000000000000815250600c019050604051809103902081565b60018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610c9d5780601f10610c7257610100808354040283529160200191610c9d565b820191906000526020600020905b815481529060010190602001808311610c8057829003601f168201915b505050505081565b60405180807f4f50454e5f50525f524f4c450000000000000000000000000000000000000000815250600c0190506040518091039020610d1633826000604051908082528060200260200182016040528015610d105781602001602082028038833980820191505090505b50611368565b6040805190810160405280600f81526020017f4150505f415554485f4641494c45440000000000000000000000000000000000815250901515610d8f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d869190612c21565b60405180910390fd5b50610e65338a8a8080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505089898080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505088888080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505087878080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050611e24565b505050505050505050565b600060019050919050565b6000610ead7fd625496217aa6a3453eecb9c3489dc5a53e6c67b444329ea2b2cbc9ff547639b60010260001916611f63565b905090565b6000610ee47febb05b386a8d34882b8711d156f463690983dc47815980fb82aeeff1aa43579e60010260001916611f6e565b905090565b60405180807f534f52545f50525f524f4c450000000000000000000000000000000000000000815250600c0190506040518091039020610f5a33826000604051908082528060200260200182016040528015610f545781602001602082028038833980820191505090505b50611368565b6040805190810160405280600f81526020017f4150505f415554485f4641494c45440000000000000000000000000000000000815250901515610fd3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fca9190612c21565b60405180910390fd5b50610fdd82610b53565b6040805190810160405280601381526020017f5245504f5f43414e4e4f545f534f52545f505200000000000000000000000000815250901515611056576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104d9190612c21565b60405180910390fd5b5061106082611f79565b5050565b60008061107083610e70565b6040805190810160405280601281526020017f5245434f5645525f444953414c4c4f57454400000000000000000000000000008152509015156110e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110e09190612c21565b60405180910390fd5b506110f26109a8565b91506110fd82612129565b6040805190810160405280601a81526020017f5245434f5645525f5641554c545f4e4f545f434f4e5452414354000000000000815250901515611176576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116d9190612c21565b60405180910390fd5b50600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561120f578173ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f19350505050158015611209573d6000803e3d6000fd5b50611363565b8273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004016112649190612b89565b602060405180830381600087803b15801561127e57600080fd5b505af1158015611292573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506112b69190810190612866565b90508273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040161130f929190612a8e565b602060405180830381600087803b15801561132957600080fd5b505af115801561133d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611361919081019061261f565b505b505050565b60008060606000611377610727565b1515611386576000935061148b565b61138e6116dd565b9250600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156113ce576000935061148b565b602085510290508491508082528273ffffffffffffffffffffffffffffffffffffffff1663fdef9106883089866040518563ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040161143694939291906129d3565b602060405180830381600087803b15801561145057600080fd5b505af1158015611464573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611488919081019061261f565b93505b5050509392505050565b60606002826040518082805190602001908083835b6020831015156114cf57805182526020820191506020810190506020830392506114aa565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405180910390208054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156115965780601f1061156b57610100808354040283529160200191611596565b820191906000526020600020905b81548152906001019060200180831161157957829003601f168201915b50505050509050919050565b6000806115ad6116dd565b73ffffffffffffffffffffffffffffffffffffffff1663be00bbd87fd6f028ca0e8edb4a8c9757ca4fdccab25fa1e0317da1188108f7d2dee14902fb6001027fddbcfd564f642ab5627cf68b9b7d374fb4f8a36e941a75d89c87998cef03bd616001026040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401611649929190612aed565b602060405180830381600087803b15801561166357600080fd5b505af1158015611677573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061169b919081019061258f565b90508091505090565b60405180807f505553485f524f4c4500000000000000000000000000000000000000000000008152506009019050604051809103902081565b600061170f7f4172f0f7d2289153072b0a6ca36959e0cbe2efc3afe50fc81636caa96338137b6001026000191661217b565b905090565b60405180807f534f52545f50525f524f4c450000000000000000000000000000000000000000815250600c01905060405180910390206117853382600060405190808252806020026020018201604052801561177f5781602001602082028038833980820191505090505b50611368565b6040805190810160405280600f81526020017f4150505f415554485f4641494c454400000000000000000000000000000000008152509015156117fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117f59190612c21565b60405180910390fd5b5061180882610b53565b6040805190810160405280601381526020017f5245504f5f43414e4e4f545f534f52545f505200000000000000000000000000815250901515611881576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118789190612c21565b60405180910390fd5b5061188b82612186565b5050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6118ba610eb2565b14905090565b60036020528060005260406000206000915090508060000160009054906101000a900460ff16908060000160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690806001018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156119a55780601f1061197a576101008083540402835291602001916119a5565b820191906000526020600020905b81548152906001019060200180831161198857829003601f168201915b505050505090806002018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611a435780601f10611a1857610100808354040283529160200191611a43565b820191906000526020600020905b815481529060010190602001808311611a2657829003601f168201915b505050505090806003018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611ae15780601f10611ab657610100808354040283529160200191611ae1565b820191906000526020600020905b815481529060010190602001808311611ac457829003601f168201915b505050505090806004018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b7f5780601f10611b5457610100808354040283529160200191611b7f565b820191906000526020600020905b815481529060010190602001808311611b6257829003601f168201915b5050505050905086565b60405180807f505553485f524f4c45000000000000000000000000000000000000000000000081525060090190506040518091039020611bfa33826000604051908082528060200260200182016040528015611bf45781602001602082028038833980820191505090505b50611368565b6040805190810160405280600f81526020017f4150505f415554485f4641494c45440000000000000000000000000000000000815250901515611c73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c6a9190612c21565b60405180910390fd5b50611ce285858080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505084848080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050506121f4565b5050505050565b600043905090565b8160009080519060200190611d079291906122b8565b508060019080519060200190611d1e9291906122b8565b507f5afc369ecb1aa3c062e62ec2fe583f595d744860a2b2cf4f1afc1c223c0871fe8282604051611d50929190612c65565b60405180910390a15050565b6000611d66610eb2565b146040805190810160405280601881526020017f494e49545f414c52454144595f494e495449414c495a45440000000000000000815250901515611de0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dd79190612c21565b60405180910390fd5b50611e22611dec611ce9565b7febb05b386a8d34882b8711d156f463690983dc47815980fb82aeeff1aa43579e600102600019166122b190919063ffffffff16565b565b600080600160045401600481905550600454915060036000838152602001908152602001600020905060008160000160006101000a81548160ff02191690836002811115611e6e57fe5b0217905550868160000160016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555085816001019080519060200190611ece9291906122b8565b5084816002019080519060200190611ee79291906122b8565b5083816003019080519060200190611f009291906122b8565b5082816004019080519060200190611f199291906122b8565b50817f4277b8ff3981b7253f0989df2f6b53ec4007191a4d31c247f20b1e36e3465f878888888888604051611f52959493929190612a1f565b60405180910390a250505050505050565b600081549050919050565b600081549050919050565b600060036000838152602001908152602001600020905060018160000160006101000a81548160ff02191690836002811115611fb157fe5b02179055506120f8816003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156120515780601f1061202657610100808354040283529160200191612051565b820191906000526020600020905b81548152906001019060200180831161203457829003601f168201915b5050505050826004018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156120ee5780601f106120c3576101008083540402835291602001916120ee565b820191906000526020600020905b8154815290600101906020018083116120d157829003601f168201915b50505050506121f4565b817f95bccfc2309f7925fb99e0e146f85e685917706bb163c2d5a217c609c7fda94460405160405180910390a25050565b600080600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561216a5760009150612175565b823b90506000811191505b50919050565b600081549050919050565b600060036000838152602001908152602001600020905060028160000160006101000a81548160ff021916908360028111156121be57fe5b0217905550817f854070939479d06d7ec6a239e445f35f8e5691c32a10231387786f936405e3c360405160405180910390a25050565b806002836040518082805190602001908083835b60208310151561222d5780518252602082019150602081019050602083039250612208565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902090805190602001906122739291906122b8565b507fb2eaa3874505c5677f2ece58bc42352903fed51dc88695036bc5534e6d75173182826040516122a5929190612c65565b60405180910390a15050565b8082555050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106122f957805160ff1916838001178555612327565b82800160010185558215612327579182015b8281111561232657825182559160200191906001019061230b565b5b5090506123349190612338565b5090565b61235a91905b8082111561235657600081600090555060010161233e565b5090565b90565b60006123698235612ddb565b905092915050565b600061237d8251612ddb565b905092915050565b600082601f830112151561239857600080fd5b81356123ab6123a682612ce4565b612cb7565b915081818352602084019350602081019050838560208402820111156123d057600080fd5b60005b8381101561240057816123e6888261253e565b8452602084019350602083019250506001810190506123d3565b5050505092915050565b60006124168251612dfb565b905092915050565b600061242a8235612e07565b905092915050565b600082601f830112151561244557600080fd5b813561245861245382612d0c565b612cb7565b9150808252602083016020830185838301111561247457600080fd5b61247f838284612e87565b50505092915050565b60006124948251612e11565b905092915050565b60008083601f84011215156124b057600080fd5b8235905067ffffffffffffffff8111156124c957600080fd5b6020830191508360018202830111156124e157600080fd5b9250929050565b600082601f83011215156124fb57600080fd5b813561250e61250982612d38565b612cb7565b9150808252602083016020830185838301111561252a57600080fd5b612535838284612e87565b50505092915050565b600061254a8235612e23565b905092915050565b600061255e8251612e23565b905092915050565b60006020828403121561257857600080fd5b60006125868482850161235d565b91505092915050565b6000602082840312156125a157600080fd5b60006125af84828501612371565b91505092915050565b6000806000606084860312156125cd57600080fd5b60006125db8682870161235d565b93505060206125ec8682870161241e565b925050604084013567ffffffffffffffff81111561260957600080fd5b61261586828701612385565b9150509250925092565b60006020828403121561263157600080fd5b600061263f8482850161240a565b91505092915050565b60006020828403121561265a57600080fd5b600082013567ffffffffffffffff81111561267457600080fd5b61268084828501612432565b91505092915050565b60006020828403121561269b57600080fd5b60006126a984828501612488565b91505092915050565b600080600080604085870312156126c857600080fd5b600085013567ffffffffffffffff8111156126e257600080fd5b6126ee8782880161249c565b9450945050602085013567ffffffffffffffff81111561270d57600080fd5b6127198782880161249c565b925092505092959194509250565b6000806000806000806000806080898b03121561274357600080fd5b600089013567ffffffffffffffff81111561275d57600080fd5b6127698b828c0161249c565b9850985050602089013567ffffffffffffffff81111561278857600080fd5b6127948b828c0161249c565b9650965050604089013567ffffffffffffffff8111156127b357600080fd5b6127bf8b828c0161249c565b9450945050606089013567ffffffffffffffff8111156127de57600080fd5b6127ea8b828c0161249c565b92509250509295985092959890939650565b60006020828403121561280e57600080fd5b600082013567ffffffffffffffff81111561282857600080fd5b612834848285016124e8565b91505092915050565b60006020828403121561284f57600080fd5b600061285d8482850161253e565b91505092915050565b60006020828403121561287857600080fd5b600061288684828501612552565b91505092915050565b61289881612d85565b82525050565b6128a781612da5565b82525050565b6128b681612db1565b82525050565b60006128c782612d64565b8084526128db816020860160208601612e96565b6128e481612ec9565b602085010191505092915050565b6128fb81612e2d565b82525050565b61290a81612e3f565b82525050565b61291981612e51565b82525050565b61292881612e63565b82525050565b61293781612e75565b82525050565b600061294882612d7a565b80845261295c816020860160208601612e96565b61296581612ec9565b602085010191505092915050565b600061297e82612d6f565b808452612992816020860160208601612e96565b61299b81612ec9565b602085010191505092915050565b6129b281612dd1565b82525050565b60006020820190506129cd600083018461288f565b92915050565b60006080820190506129e8600083018761288f565b6129f5602083018661288f565b612a0260408301856128ad565b8181036060830152612a1481846128bc565b905095945050505050565b600060a082019050612a34600083018861288f565b8181036020830152612a46818761293d565b90508181036040830152612a5a818661293d565b90508181036060830152612a6e818561293d565b90508181036080830152612a82818461293d565b90509695505050505050565b6000604082019050612aa3600083018561288f565b612ab060208301846129a9565b9392505050565b6000602082019050612acc600083018461289e565b92915050565b6000602082019050612ae760008301846128ad565b92915050565b6000604082019050612b0260008301856128ad565b612b0f60208301846128ad565b9392505050565b60006020820190508181036000830152612b3081846128bc565b905092915050565b6000602082019050612b4d60008301846128f2565b92915050565b6000602082019050612b686000830184612901565b92915050565b6000602082019050612b836000830184612910565b92915050565b6000602082019050612b9e600083018461291f565b92915050565b600060c082019050612bb9600083018961292e565b612bc6602083018861288f565b8181036040830152612bd88187612973565b90508181036060830152612bec8186612973565b90508181036080830152612c008185612973565b905081810360a0830152612c148184612973565b9050979650505050505050565b60006020820190508181036000830152612c3b8184612973565b905092915050565b60006020820190508181036000830152612c5d818461293d565b905092915050565b60006040820190508181036000830152612c7f818561293d565b90508181036020830152612c93818461293d565b90509392505050565b6000602082019050612cb160008301846129a9565b92915050565b6000604051905081810181811067ffffffffffffffff82111715612cda57600080fd5b8060405250919050565b600067ffffffffffffffff821115612cfb57600080fd5b602082029050602081019050919050565b600067ffffffffffffffff821115612d2357600080fd5b601f19601f8301169050602081019050919050565b600067ffffffffffffffff821115612d4f57600080fd5b601f19601f8301169050602081019050919050565b600081519050919050565b600081519050919050565b600081519050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60008115159050919050565b6000819050919050565b6000600382101515612dc957fe5b819050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60008115159050919050565b6000819050919050565b6000612e1c82612d85565b9050919050565b6000819050919050565b6000612e3882612d85565b9050919050565b6000612e4a82612d85565b9050919050565b6000612e5c82612d85565b9050919050565b6000612e6e82612d85565b9050919050565b6000612e8082612dbb565b9050919050565b82818337600083830152505050565b60005b83811015612eb4578082015181840152602081019050612e99565b83811115612ec3576000848401525b50505050565b6000601f19601f83011690509190505600a265627a7a723058202d55a3bb4e8eca679c2afc90035528168b68d123ccac3201c1578cc64b915b326c6578706572696d656e74616cf50037",
  "sourceMap": "112:4356:57:-;;;344:9:19;:7;;;:9;;;:::i;:::-;112:4356:57;;590:84:28;651:1:26;623:24;:22;;;:24;;;:::i;:::-;:29;654:25;;;;;;;;;;;;;;;;;;615:65;;;;;;;;;;;;;;;;;;;;;;;;;;;637:30:28;277:2;637:13;;;:30;;;:::i;:::-;590:84::o;889:137:26:-;944:7;970:49;353:66;970:29;;:47;;;;;;;;:49;;;:::i;:::-;963:56;;889:137;:::o;1759:141::-;651:1;623:24;:22;;;:24;;;:::i;:::-;:29;654:25;;;;;;;;;;;;;;;;;;615:65;;;;;;;;;;;;;;;;;;;;;;;;;;;1832:61;1880:12;353:66;1832:29;;:47;;;;;;;;;:61;;;;;:::i;:::-;1759:141;:::o;519:134:31:-;587:12;636:8;630:15;622:23;;620:27;;;:::o;1028:119::-;1134:4;1124:8;1117:22;1115:26;;:::o;5:292:-1:-;;103:35;132:5;103:35;;;155:6;150:3;143:19;167:63;223:6;216:4;211:3;207:14;200:4;193:5;189:16;167:63;;;262:29;284:6;262:29;;;255:4;250:3;246:14;242:50;235:57;;83:214;;;;;;304:273;;428:2;417:9;413:18;405:26;;478:9;472:4;468:20;464:1;453:9;449:17;442:47;503:64;562:4;553:6;503:64;;;495:72;;399:178;;;;;584:88;;661:5;655:12;645:22;;639:33;;;;680:268;745:1;752:101;766:6;763:1;760:13;752:101;;;842:1;837:3;833:11;827:18;823:1;818:3;814:11;807:39;788:2;785:1;781:10;776:15;;752:101;;;868:6;865:1;862:13;859:2;;;933:1;924:6;919:3;915:16;908:27;859:2;729:219;;;;;956:97;;1044:2;1040:7;1035:2;1028:5;1024:14;1020:28;1010:38;;1004:49;;;;112:4356:57;;;;;;;",
  "deployedSourceMap": "112:4356:57:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;290:64;;8:9:-1;5:2;;;30:1;27;20:12;5:2;290:64:57;;;;;;;;;;;;;;;;;;;;748:18;;8:9:-1;5:2;;;30:1;27;20:12;5:2;748:18:57;;;;;;;;;;;;;;;;;;;;1136:208:26;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1136:208:26;;;;;;;;;;;;;;;;;;;;880:24:57;;8:9:-1;5:2;;;30:1;27;20:12;5:2;880:24:57;;;;;;;;;;;;;;;;;;;;2732:160;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2732:160:57;;;;;;;;;;;;;;;;;;;360:88;;8:9:-1;5:2;;;30:1;27;20:12;5:2;360:88:57;;;;;;;;;;;;;;;;;;;;733:179:34;;8:9:-1;5:2;;;30:1;27;20:12;5:2;733:179:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2466:229:18;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2466:229:18;;;;;;;;;;;;;;;;;;;;1251:154:57;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1251:154:57;;;;;;;;;;;;;;;;;;;3034:256;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3034:256:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;220:64;;8:9:-1;5:2;;;30:1;27;20:12;5:2;220:64:57;;;;;;;;;;;;;;;;;;;;772:25;;8:9:-1;5:2;;;30:1;27;20:12;5:2;772:25:57;;;;;;;;;;;;;;;;;;;;1888:178;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1888:178:57;;;;;;;;;;;;;;;;;;;1333:99:32;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1333:99:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;796:106:17;;8:9:-1;5:2;;;30:1;27;20:12;5:2;796:106:17;;;;;;;;;;;;;;;;;;;;889:137:26;;8:9:-1;5:2;;;30:1;27;20:12;5:2;889:137:26;;;;;;;;;;;;;;;;;;;;2147:148:57;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2147:148:57;;;;;;;;;;;;;;;;;;;687:446:32;;8:9:-1;5:2;;;30:1;27;20:12;5:2;687:446:32;;;;;;;;;;;;;;;;;;;1524:826:18;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1524:826:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2934:94:57;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2934:94:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;918:231:34;;8:9:-1;5:2;;;30:1;27;20:12;5:2;918:231:34;;;;;;;;;;;;;;;;;;;;156:58:57;;8:9:-1;5:2;;;30:1;27;20:12;5:2;156:58:57;;;;;;;;;;;;;;;;;;;;674:116:17;;8:9:-1;5:2;;;30:1;27;20:12;5:2;674:116:17;;;;;;;;;;;;;;;;;;;;2377:150:57;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2377:150:57;;;;;;;;;;;;;;;;;;;287:117:28;;8:9:-1;5:2;;;30:1;27;20:12;5:2;287:117:28;;;;;;;;;;;;;;;;;;;;841:33:57;;8:9:-1;5:2;;;30:1;27;20:12;5:2;841:33:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1556:101;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1556:101:57;;;;;;;;;;;;;;;;;;;290:64;329:25;;;;;;;;;;;;;;;;;;;290:64;:::o;748:18::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1136:208:26:-;1183:4;1199:27;1229:24;:22;:24::i;:::-;1199:54;;1293:1;1270:19;:24;;:67;;;;;1318:19;1298:16;:14;:16::i;:::-;:39;;1270:67;1263:74;;1136:208;;:::o;880:24:57:-;;;;:::o;2732:160::-;411:37;;;;;;;;;;;;;;;;;;;873:47:18;884:10;896:5;917:1;903:16;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;903:16:18;;;;873:10;:47::i;:::-;922:17;;;;;;;;;;;;;;;;;;865:75;;;;;;;;;;;;;;;;;;;;;;;;;;;2845:40:57;2865:5;;2845:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2872:12;;2845:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:19;:40::i;:::-;2732:160;;;;;:::o;360:88::-;411:37;;;;;;;;;;;;;;;;;;;360:88;:::o;733:179:34:-;799:18;855:22;:20;:22::i;:::-;:40;;;896:7;855:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;855:49:34;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;855:49:34;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;855:49:34;;;;;;;;;829:76;;733:179;;;:::o;2466:229:18:-;2515:7;2621:8;:6;:8::i;:::-;:25;;;:27;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2621:27:18;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2621:27:18;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;2621:27:18;;;;;;;;;2614:34;;2466:229;:::o;1251:154:57:-;651:1:26;623:24;:22;:24::i;:::-;:29;654:25;;;;;;;;;;;;;;;;;;615:65;;;;;;;;;;;;;;;;;;;;;;;;;;;1334:13:57;:11;:13::i;:::-;1358:40;1378:5;;1358:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1385:12;;1358:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:19;:40::i;:::-;1251:154;;;;:::o;3034:256::-;3087:4;3170:13;3113:1;3107:3;:7;:26;;;;3124:9;;3118:3;:15;3107:26;3103:56;;;3154:5;3147:12;;;;3103:56;3186:3;:8;3190:3;3186:8;;;;;;;;;;;3170:24;;3220:15;3208:27;;;;;;;;:2;:8;;;;;;;;;;;;:27;;;;;;;;;;3204:57;;;3256:5;3249:12;;;;3204:57;3279:4;3272:11;;3034:256;;;;;:::o;220:64::-;259:25;;;;;;;;;;;;;;;;;;;220:64;:::o;772:25::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1888:178::-;259:25;;;;;;;;;;;;;;;;;;;873:47:18;884:10;896:5;917:1;903:16;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;903:16:18;;;;873:10;:47::i;:::-;922:17;;;;;;;;;;;;;;;;;;865:75;;;;;;;;;;;;;;;;;;;;;;;;;;;2005:54:57;2013:10;2025:6;;2005:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2033:12;;2005:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2047:4;;2005:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2053:5;;2005:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:7;:54::i;:::-;1888:178;;;;;;;;;:::o;1333:99:32:-;1398:4;1421;1414:11;;1333:99;;;:::o;796:106:17:-;834:7;860:35;601:66;860:15;;:33;;;;:35::i;:::-;853:42;;796:106;:::o;889:137:26:-;944:7;970:49;353:66;970:29;;:47;;;;:49::i;:::-;963:56;;889:137;:::o;2147:148:57:-;329:25;;;;;;;;;;;;;;;;;;;873:47:18;884:10;896:5;917:1;903:16;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;903:16:18;;;;873:10;:47::i;:::-;922:17;;;;;;;;;;;;;;;;;;865:75;;;;;;;;;;;;;;;;;;;;;;;;;;;2223:14:57;2233:3;2223:9;:14::i;:::-;2239:25;;;;;;;;;;;;;;;;;;2215:50;;;;;;;;;;;;;;;;;;;;;;;;;;;2275:13;2284:3;2275:8;:13::i;:::-;2147:148;;:::o;687:446:32:-;811:13;1019:14;755:27;775:6;755:19;:27::i;:::-;784:16;;;;;;;;;;;;;;;;;;747:54;;;;;;;;;;;;;;;;;;;;;;;;;;;827:18;:16;:18::i;:::-;811:34;;863:17;874:5;863:10;:17::i;:::-;882:24;;;;;;;;;;;;;;;;;;855:52;;;;;;;;;;;;;;;;;;;;;;;;;;;269:1:23;922:13:32;;:6;:13;;;918:209;;;951:5;:14;;:37;974:4;966:21;;;951:37;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;951:37:32;918:209;;;1042:6;1036:23;;;1060:4;1036:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1036:29:32;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1036:29:32;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;1036:29:32;;;;;;;;;1019:46;;1085:6;1079:22;;;1102:5;1109:6;1079:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1079:37:32;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1079:37:32;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;1079:37:32;;;;;;;;;;918:209;687:446;;;:::o;1524:826:18:-;1616:4;1702:20;2106:16;2132:18;1637:16;:14;:16::i;:::-;1636:17;1632:60;;;1676:5;1669:12;;;;1632:60;1725:8;:6;:8::i;:::-;1702:31;;1780:1;1747:35;;1755:12;1747:35;;;1743:78;;;1805:5;1798:12;;;;1743:78;2170:2;2153:7;:14;:19;2132:40;;2212:7;2205:14;;2244:10;2239:3;2232:23;2281:12;:26;;;2308:7;2325:4;2332:5;2339:3;2281:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2281:62:18;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2281:62:18;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;2281:62:18;;;;;;;;;2274:69;;1524:826;;;;;;;;;:::o;2934:94:57:-;2981:11;3011:4;3016;3011:10;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;3011:10:57;;;;;;;;;;;;;;;;;;;;;3004:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2934:94;;;:::o;918:231:34:-;971:18;1001:20;1024:8;:6;:8::i;:::-;:15;;;1368:66:45;1040:25:34;;330:66:36;1067:25:34;;1024:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1024:69:34;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1024:69:34;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;1024:69:34;;;;;;;;;1001:92;;1129:12;1103:39;;918:231;;:::o;156:58:57:-;192:22;;;;;;;;;;;;;;;;;;;156:58;:::o;674:116:17:-;713:7;747:35;485:66;747:15;;:33;;;;:35::i;:::-;732:51;;674:116;:::o;2377:150:57:-;329:25;;;;;;;;;;;;;;;;;;;873:47:18;884:10;896:5;917:1;903:16;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;903:16:18;;;;873:10;:47::i;:::-;922:17;;;;;;;;;;;;;;;;;;865:75;;;;;;;;;;;;;;;;;;;;;;;;;;;2454:14:57;2464:3;2454:9;:14::i;:::-;2470:25;;;;;;;;;;;;;;;;;;2446:50;;;;;;;;;;;;;;;;;;;;;;;;;;;2506:14;2516:3;2506:9;:14::i;:::-;2377:150;;:::o;287:117:28:-;331:4;277:2;354:24;:22;:24::i;:::-;:43;347:50;;287:117;:::o;841:33:57:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1556:101::-;192:22;;;;;;;;;;;;;;;;;;;873:47:18;884:10;896:5;917:1;903:16;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;903:16:18;;;;873:10;:47::i;:::-;922:17;;;;;;;;;;;;;;;;;;865:75;;;;;;;;;;;;;;;;;;;;;;;;;;;1632:18:57;1638:4;;1632:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1644:5;;1632:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:5;:18::i;:::-;1556:101;;;;;:::o;347:94:29:-;396:7;422:12;415:19;;347:94;:::o;4271:193:57:-;4361:5;4354:4;:12;;;;;;;;;;;;:::i;:::-;;4390;4376:11;:26;;;;;;;;;;;;:::i;:::-;;4418:39;4437:5;4444:12;4418:39;;;;;;;;;;;;;;;;4271:193;;:::o;1455:123:26:-;651:1;623:24;:22;:24::i;:::-;:29;654:25;;;;;;;;;;;;;;;;;;615:65;;;;;;;;;;;;;;;;;;;;;;;;;;;1506;1554:16;:14;:16::i;:::-;353:66;1506:29;;:47;;;;;:65;;;;:::i;:::-;1455:123::o;3463:464:57:-;3614:10;3647:13;3603:1;3591:9;;:13;3579:9;:25;;;;3627:9;;3614:22;;3663:3;:7;3667:2;3663:7;;;;;;;;;;;3647:23;;3692:15;3681:2;:8;;;:26;;;;;;;;;;;;;;;;;;;;;;;;3729:7;3717:2;:9;;;:19;;;;;;;;;;;;;;;;;;3757:6;3746:2;:8;;:17;;;;;;;;;;;;:::i;:::-;;3790:12;3773:2;:14;;:29;;;;;;;;;;;;:::i;:::-;;3821:4;3812:2;:6;;:13;;;;;;;;;;;;:::i;:::-;;3845:5;3835:2;:7;;:15;;;;;;;;;;;;:::i;:::-;;3873:2;3866:54;3877:7;3886:6;3894:12;3908:4;3914:5;3866:54;;;;;;;;;;;;;;;;;;;3463:464;;;;;;;:::o;379:134:31:-;447:12;496:8;490:15;482:23;;480:27;;;:::o;519:134::-;587:12;636:8;630:15;622:23;;620:27;;;:::o;3933:177:57:-;3983:13;3999:3;:8;4003:3;3999:8;;;;;;;;;;;3983:24;;4029:14;4018:2;:8;;;:25;;;;;;;;;;;;;;;;;;;;;;;;4053:22;4059:2;:6;;4053:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4067:2;:7;;4053:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:5;:22::i;:::-;4099:3;4091:12;;;;;;;;;;3933:177;;:::o;426:244:27:-;486:4;576:12;525:1;506:21;;:7;:21;;;502:64;;;550:5;543:12;;;;502:64;629:7;617:20;609:28;;662:1;655:4;:8;648:15;;426:244;;;;;:::o;239:134:31:-;307:12;356:8;350:15;342:23;;340:27;;;:::o;4116:149:57:-;4167:13;4183:3;:8;4187:3;4183:8;;;;;;;;;;;4167:24;;4213:16;4202:2;:8;;;:27;;;;;;;;;;;;;;;;;;;;;;;;4254:3;4245:13;;;;;;;;;;4116:149;;:::o;3333:124::-;3407:5;3394:4;3399;3394:10;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;3394:10:57;;;;;;;;;;;;;;;;;;;;;:18;;;;;;;;;;;;:::i;:::-;;3428:22;3438:4;3444:5;3428:22;;;;;;;;;;;;;;;;3333:124;;:::o;1028:119:31:-;1134:4;1124:8;1117:22;1115:26;;:::o;112:4356:57:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;5:118:-1:-;;72:46;110:6;97:20;72:46;;;63:55;;57:66;;;;;130:122;;208:39;239:6;233:13;208:39;;;199:48;;193:59;;;;;277:707;;394:3;387:4;379:6;375:17;371:27;364:35;361:2;;;412:1;409;402:12;361:2;449:6;436:20;471:80;486:64;543:6;486:64;;;471:80;;;462:89;;568:5;593:6;586:5;579:21;623:4;615:6;611:17;601:27;;645:4;640:3;636:14;629:21;;698:6;745:3;737:4;729:6;725:17;720:3;716:27;713:36;710:2;;;762:1;759;752:12;710:2;787:1;772:206;797:6;794:1;791:13;772:206;;;855:3;877:37;910:3;898:10;877:37;;;872:3;865:50;938:4;933:3;929:14;922:21;;966:4;961:3;957:14;950:21;;829:149;819:1;816;812:9;807:14;;772:206;;;776:14;354:630;;;;;;;;992:116;;1067:36;1095:6;1089:13;1067:36;;;1058:45;;1052:56;;;;;1115:118;;1182:46;1220:6;1207:20;1182:46;;;1173:55;;1167:66;;;;;1241:440;;1342:3;1335:4;1327:6;1323:17;1319:27;1312:35;1309:2;;;1360:1;1357;1350:12;1309:2;1397:6;1384:20;1419:64;1434:48;1475:6;1434:48;;;1419:64;;;1410:73;;1503:6;1496:5;1489:21;1539:4;1531:6;1527:17;1572:4;1565:5;1561:16;1607:3;1598:6;1593:3;1589:16;1586:25;1583:2;;;1624:1;1621;1614:12;1583:2;1634:41;1668:6;1663:3;1658;1634:41;;;1302:379;;;;;;;;1689:176;;1794:66;1852:6;1846:13;1794:66;;;1785:75;;1779:86;;;;;1887:336;;;2002:3;1995:4;1987:6;1983:17;1979:27;1972:35;1969:2;;;2020:1;2017;2010:12;1969:2;2053:6;2040:20;2030:30;;2080:18;2072:6;2069:30;2066:2;;;2112:1;2109;2102:12;2066:2;2146:4;2138:6;2134:17;2122:29;;2196:3;2189;2181:6;2177:16;2167:8;2163:31;2160:40;2157:2;;;2213:1;2210;2203:12;2157:2;1962:261;;;;;;2232:442;;2334:3;2327:4;2319:6;2315:17;2311:27;2304:35;2301:2;;;2352:1;2349;2342:12;2301:2;2389:6;2376:20;2411:65;2426:49;2468:6;2426:49;;;2411:65;;;2402:74;;2496:6;2489:5;2482:21;2532:4;2524:6;2520:17;2565:4;2558:5;2554:16;2600:3;2591:6;2586:3;2582:16;2579:25;2576:2;;;2617:1;2614;2607:12;2576:2;2627:41;2661:6;2656:3;2651;2627:41;;;2294:380;;;;;;;;2682:118;;2749:46;2787:6;2774:20;2749:46;;;2740:55;;2734:66;;;;;2807:122;;2885:39;2916:6;2910:13;2885:39;;;2876:48;;2870:59;;;;;2936:241;;3040:2;3028:9;3019:7;3015:23;3011:32;3008:2;;;3056:1;3053;3046:12;3008:2;3091:1;3108:53;3153:7;3144:6;3133:9;3129:22;3108:53;;;3098:63;;3070:97;3002:175;;;;;3184:263;;3299:2;3287:9;3278:7;3274:23;3270:32;3267:2;;;3315:1;3312;3305:12;3267:2;3350:1;3367:64;3423:7;3414:6;3403:9;3399:22;3367:64;;;3357:74;;3329:108;3261:186;;;;;3454:627;;;;3617:2;3605:9;3596:7;3592:23;3588:32;3585:2;;;3633:1;3630;3623:12;3585:2;3668:1;3685:53;3730:7;3721:6;3710:9;3706:22;3685:53;;;3675:63;;3647:97;3775:2;3793:53;3838:7;3829:6;3818:9;3814:22;3793:53;;;3783:63;;3754:98;3911:2;3900:9;3896:18;3883:32;3935:18;3927:6;3924:30;3921:2;;;3967:1;3964;3957:12;3921:2;3987:78;4057:7;4048:6;4037:9;4033:22;3987:78;;;3977:88;;3862:209;3579:502;;;;;;4088:257;;4200:2;4188:9;4179:7;4175:23;4171:32;4168:2;;;4216:1;4213;4206:12;4168:2;4251:1;4268:61;4321:7;4312:6;4301:9;4297:22;4268:61;;;4258:71;;4230:105;4162:183;;;;;4352:345;;4465:2;4453:9;4444:7;4440:23;4436:32;4433:2;;;4481:1;4478;4471:12;4433:2;4544:1;4533:9;4529:17;4516:31;4567:18;4559:6;4556:30;4553:2;;;4599:1;4596;4589:12;4553:2;4619:62;4673:7;4664:6;4653:9;4649:22;4619:62;;;4609:72;;4495:192;4427:270;;;;;4704:317;;4846:2;4834:9;4825:7;4821:23;4817:32;4814:2;;;4862:1;4859;4852:12;4814:2;4897:1;4914:91;4997:7;4988:6;4977:9;4973:22;4914:91;;;4904:101;;4876:135;4808:213;;;;;5028:618;;;;;5189:2;5177:9;5168:7;5164:23;5160:32;5157:2;;;5205:1;5202;5195:12;5157:2;5268:1;5257:9;5253:17;5240:31;5291:18;5283:6;5280:30;5277:2;;;5323:1;5320;5313:12;5277:2;5351:65;5408:7;5399:6;5388:9;5384:22;5351:65;;;5333:83;;;;5219:203;5481:2;5470:9;5466:18;5453:32;5505:18;5497:6;5494:30;5491:2;;;5537:1;5534;5527:12;5491:2;5565:65;5622:7;5613:6;5602:9;5598:22;5565:65;;;5547:83;;;;5432:204;5151:495;;;;;;;;5653:1121;;;;;;;;;5888:3;5876:9;5867:7;5863:23;5859:33;5856:2;;;5905:1;5902;5895:12;5856:2;5968:1;5957:9;5953:17;5940:31;5991:18;5983:6;5980:30;5977:2;;;6023:1;6020;6013:12;5977:2;6051:65;6108:7;6099:6;6088:9;6084:22;6051:65;;;6033:83;;;;5919:203;6181:2;6170:9;6166:18;6153:32;6205:18;6197:6;6194:30;6191:2;;;6237:1;6234;6227:12;6191:2;6265:65;6322:7;6313:6;6302:9;6298:22;6265:65;;;6247:83;;;;6132:204;6395:2;6384:9;6380:18;6367:32;6419:18;6411:6;6408:30;6405:2;;;6451:1;6448;6441:12;6405:2;6479:65;6536:7;6527:6;6516:9;6512:22;6479:65;;;6461:83;;;;6346:204;6609:2;6598:9;6594:18;6581:32;6633:18;6625:6;6622:30;6619:2;;;6665:1;6662;6655:12;6619:2;6693:65;6750:7;6741:6;6730:9;6726:22;6693:65;;;6675:83;;;;6560:204;5850:924;;;;;;;;;;;;6781:347;;6895:2;6883:9;6874:7;6870:23;6866:32;6863:2;;;6911:1;6908;6901:12;6863:2;6974:1;6963:9;6959:17;6946:31;6997:18;6989:6;6986:30;6983:2;;;7029:1;7026;7019:12;6983:2;7049:63;7104:7;7095:6;7084:9;7080:22;7049:63;;;7039:73;;6925:193;6857:271;;;;;7135:241;;7239:2;7227:9;7218:7;7214:23;7210:32;7207:2;;;7255:1;7252;7245:12;7207:2;7290:1;7307:53;7352:7;7343:6;7332:9;7328:22;7307:53;;;7297:63;;7269:97;7201:175;;;;;7383:263;;7498:2;7486:9;7477:7;7473:23;7469:32;7466:2;;;7514:1;7511;7504:12;7466:2;7549:1;7566:64;7622:7;7613:6;7602:9;7598:22;7566:64;;;7556:74;;7528:108;7460:186;;;;;7653:110;7726:31;7751:5;7726:31;;;7721:3;7714:44;7708:55;;;7770:101;7837:28;7859:5;7837:28;;;7832:3;7825:41;7819:52;;;7878:110;7951:31;7976:5;7951:31;;;7946:3;7939:44;7933:55;;;7995:297;;8095:38;8127:5;8095:38;;;8150:6;8145:3;8138:19;8162:63;8218:6;8211:4;8206:3;8202:14;8195:4;8188:5;8184:16;8162:63;;;8257:29;8279:6;8257:29;;;8250:4;8245:3;8241:14;8237:50;8230:57;;8075:217;;;;;;8299:170;8399:64;8457:5;8399:64;;;8394:3;8387:77;8381:88;;;8476:170;8576:64;8634:5;8576:64;;;8571:3;8564:77;8558:88;;;8653:150;8743:54;8791:5;8743:54;;;8738:3;8731:67;8725:78;;;8810:166;8908:62;8964:5;8908:62;;;8903:3;8896:75;8890:86;;;8983:138;9067:48;9109:5;9067:48;;;9062:3;9055:61;9049:72;;;9128:300;;9230:39;9263:5;9230:39;;;9286:6;9281:3;9274:19;9298:63;9354:6;9347:4;9342:3;9338:14;9331:4;9324:5;9320:16;9298:63;;;9393:29;9415:6;9393:29;;;9386:4;9381:3;9377:14;9373:50;9366:57;;9210:218;;;;;;9435:292;;9533:35;9562:5;9533:35;;;9585:6;9580:3;9573:19;9597:63;9653:6;9646:4;9641:3;9637:14;9630:4;9623:5;9619:16;9597:63;;;9692:29;9714:6;9692:29;;;9685:4;9680:3;9676:14;9672:50;9665:57;;9513:214;;;;;;9734:110;9807:31;9832:5;9807:31;;;9802:3;9795:44;9789:55;;;9851:193;;9959:2;9948:9;9944:18;9936:26;;9973:61;10031:1;10020:9;10016:17;10007:6;9973:61;;;9930:114;;;;;10051:581;;10261:3;10250:9;10246:19;10238:27;;10276:61;10334:1;10323:9;10319:17;10310:6;10276:61;;;10348:62;10406:2;10395:9;10391:18;10382:6;10348:62;;;10421;10479:2;10468:9;10464:18;10455:6;10421:62;;;10531:9;10525:4;10521:20;10516:2;10505:9;10501:18;10494:48;10556:66;10617:4;10608:6;10556:66;;;10548:74;;10232:400;;;;;;;;10639:951;;10939:3;10928:9;10924:19;10916:27;;10954:61;11012:1;11001:9;10997:17;10988:6;10954:61;;;11063:9;11057:4;11053:20;11048:2;11037:9;11033:18;11026:48;11088:68;11151:4;11142:6;11088:68;;;11080:76;;11204:9;11198:4;11194:20;11189:2;11178:9;11174:18;11167:48;11229:68;11292:4;11283:6;11229:68;;;11221:76;;11345:9;11339:4;11335:20;11330:2;11319:9;11315:18;11308:48;11370:68;11433:4;11424:6;11370:68;;;11362:76;;11487:9;11481:4;11477:20;11471:3;11460:9;11456:19;11449:49;11512:68;11575:4;11566:6;11512:68;;;11504:76;;10910:680;;;;;;;;;11597:294;;11733:2;11722:9;11718:18;11710:26;;11747:61;11805:1;11794:9;11790:17;11781:6;11747:61;;;11819:62;11877:2;11866:9;11862:18;11853:6;11819:62;;;11704:187;;;;;;11898:181;;12000:2;11989:9;11985:18;11977:26;;12014:55;12066:1;12055:9;12051:17;12042:6;12014:55;;;11971:108;;;;;12086:193;;12194:2;12183:9;12179:18;12171:26;;12208:61;12266:1;12255:9;12251:17;12242:6;12208:61;;;12165:114;;;;;12286:294;;12422:2;12411:9;12407:18;12399:26;;12436:61;12494:1;12483:9;12479:17;12470:6;12436:61;;;12508:62;12566:2;12555:9;12551:18;12542:6;12508:62;;;12393:187;;;;;;12587:277;;12713:2;12702:9;12698:18;12690:26;;12763:9;12757:4;12753:20;12749:1;12738:9;12734:17;12727:47;12788:66;12849:4;12840:6;12788:66;;;12780:74;;12684:180;;;;;12871:247;;13006:2;12995:9;12991:18;12983:26;;13020:88;13105:1;13094:9;13090:17;13081:6;13020:88;;;12977:141;;;;;13125:247;;13260:2;13249:9;13245:18;13237:26;;13274:88;13359:1;13348:9;13344:17;13335:6;13274:88;;;13231:141;;;;;13379:227;;13504:2;13493:9;13489:18;13481:26;;13518:78;13593:1;13582:9;13578:17;13569:6;13518:78;;;13475:131;;;;;13613:243;;13746:2;13735:9;13731:18;13723:26;;13760:86;13843:1;13832:9;13828:17;13819:6;13760:86;;;13717:139;;;;;13863:1043;;14186:3;14175:9;14171:19;14163:27;;14201:72;14270:1;14259:9;14255:17;14246:6;14201:72;;;14284:62;14342:2;14331:9;14327:18;14318:6;14284:62;;;14394:9;14388:4;14384:20;14379:2;14368:9;14364:18;14357:48;14419:64;14478:4;14469:6;14419:64;;;14411:72;;14531:9;14525:4;14521:20;14516:2;14505:9;14501:18;14494:48;14556:64;14615:4;14606:6;14556:64;;;14548:72;;14669:9;14663:4;14659:20;14653:3;14642:9;14638:19;14631:49;14694:64;14753:4;14744:6;14694:64;;;14686:72;;14807:9;14801:4;14797:20;14791:3;14780:9;14776:19;14769:49;14832:64;14891:4;14882:6;14832:64;;;14824:72;;14157:749;;;;;;;;;;14913:273;;15037:2;15026:9;15022:18;15014:26;;15087:9;15081:4;15077:20;15073:1;15062:9;15058:17;15051:47;15112:64;15171:4;15162:6;15112:64;;;15104:72;;15008:178;;;;;15193:281;;15321:2;15310:9;15306:18;15298:26;;15371:9;15365:4;15361:20;15357:1;15346:9;15342:17;15335:47;15396:68;15459:4;15450:6;15396:68;;;15388:76;;15292:182;;;;;15481:470;;15657:2;15646:9;15642:18;15634:26;;15707:9;15701:4;15697:20;15693:1;15682:9;15678:17;15671:47;15732:68;15795:4;15786:6;15732:68;;;15724:76;;15848:9;15842:4;15838:20;15833:2;15822:9;15818:18;15811:48;15873:68;15936:4;15927:6;15873:68;;;15865:76;;15628:323;;;;;;15958:193;;16066:2;16055:9;16051:18;16043:26;;16080:61;16138:1;16127:9;16123:17;16114:6;16080:61;;;16037:114;;;;;16158:256;;16220:2;16214:9;16204:19;;16258:4;16250:6;16246:17;16357:6;16345:10;16342:22;16321:18;16309:10;16306:34;16303:62;16300:2;;;16378:1;16375;16368:12;16300:2;16398:10;16394:2;16387:22;16198:216;;;;;16421:258;;16580:18;16572:6;16569:30;16566:2;;;16612:1;16609;16602:12;16566:2;16641:4;16633:6;16629:17;16621:25;;16669:4;16663;16659:15;16651:23;;16503:176;;;;16686:258;;16829:18;16821:6;16818:30;16815:2;;;16861:1;16858;16851:12;16815:2;16905:4;16901:9;16894:4;16886:6;16882:17;16878:33;16870:41;;16934:4;16928;16924:15;16916:23;;16752:192;;;;16951:259;;17095:18;17087:6;17084:30;17081:2;;;17127:1;17124;17117:12;17081:2;17171:4;17167:9;17160:4;17152:6;17148:17;17144:33;17136:41;;17200:4;17194;17190:15;17182:23;;17018:192;;;;17217:91;;17297:5;17291:12;17281:22;;17275:33;;;;17315:88;;17392:5;17386:12;17376:22;;17370:33;;;;17410:92;;17491:5;17485:12;17475:22;;17469:33;;;;17509:128;;17589:42;17582:5;17578:54;17567:65;;17561:76;;;;17644:92;;17724:5;17717:13;17710:21;17699:32;;17693:43;;;;17743:79;;17812:5;17801:16;;17795:27;;;;17829:130;;17920:1;17913:5;17910:12;17903:20;17900:2;;;17926:9;17900:2;17949:5;17938:16;;17894:65;;;;17966:79;;18035:5;18024:16;;18018:27;;;;18052:128;;18132:42;18125:5;18121:54;18110:65;;18104:76;;;;18187:92;;18267:5;18260:13;18253:21;18242:32;;18236:43;;;;18286:79;;18355:5;18344:16;;18338:27;;;;18372:132;;18468:31;18493:5;18468:31;;;18457:42;;18451:53;;;;18511:79;;18580:5;18569:16;;18563:27;;;;18597:142;;18703:31;18728:5;18703:31;;;18690:44;;18684:55;;;;18746:142;;18852:31;18877:5;18852:31;;;18839:44;;18833:55;;;;18895:132;;18991:31;19016:5;18991:31;;;18978:44;;18972:55;;;;19034:140;;19138:31;19163:5;19138:31;;;19125:44;;19119:55;;;;19181:139;;19271:44;19309:5;19271:44;;;19258:57;;19252:68;;;;19328:145;19409:6;19404:3;19399;19386:30;19465:1;19456:6;19451:3;19447:16;19440:27;19379:94;;;;19482:268;19547:1;19554:101;19568:6;19565:1;19562:13;19554:101;;;19644:1;19639:3;19635:11;19629:18;19625:1;19620:3;19616:11;19609:39;19590:2;19587:1;19583:10;19578:15;;19554:101;;;19670:6;19667:1;19664:13;19661:2;;;19735:1;19726:6;19721:3;19717:16;19710:27;19661:2;19531:219;;;;;19758:97;;19846:2;19842:7;19837:2;19830:5;19826:14;19822:28;19812:38;;19806:49;;;",
  "source": "pragma solidity ^0.4.24;\npragma experimental ABIEncoderV2;\n\nimport \"@aragon/os/contracts/apps/AragonApp.sol\";\n\n\ncontract PandoRepository is AragonApp {\n    bytes32 constant public PUSH_ROLE = keccak256(\"PUSH_ROLE\");\n    bytes32 constant public OPEN_PR_ROLE = keccak256(\"OPEN_PR_ROLE\");\n    bytes32 constant public SORT_PR_ROLE = keccak256(\"SORT_PR_ROLE\");\n    bytes32 constant public UPDATE_INFORMATIONS_ROLE = keccak256(\"UPDATE_INFORMATIONS_ROLE\");\n\n    string private constant ERROR_REPO_CANNOT_SORT_PR = \"REPO_CANNOT_SORT_PR\";\n\n    enum PRState { Pending, Merged, Rejected }\n\n    struct PR {\n        PRState state;\n        address author;\n        string  title;\n        string  description;\n        string  ref;\n        string  hash;\n    }\n\n    string public name;\n    string public description;\n    mapping (string => string) refs;\n\n    mapping(uint256 => PR) public PRs;\n    uint256 public PRsLength;\n\n    event UpdateRef(string ref, string hash);\n    event OpenPR(uint256 indexed id, address author, string title, string description, string ref, string hash);\n    event MergePR(uint256 indexed id);\n    event RejectPR(uint256 indexed id);\n    event UpdateInformations(string name, string description);\n\n    /***** external functions *****/\n\n    function initialize(string _name, string _description) external onlyInit {\n        initialized();\n\n        _updateInformations(_name, _description);\n    }\n\n    /**\n    * @notice Push `_hash` to `_ref`\n    * @param _ref Reference to push to\n    * @param _hash CID of the git-ipld commit to push\n    */\n    function push(string _ref, string _hash) external auth(PUSH_ROLE) {\n        _push(_ref, _hash);\n    }\n\n    /**\n    * @notice Open PR '`_title`'\n    * @param _title Title of the PR\n    * @param _description Description of the PR\n    * @param _ref Reference to push to\n    * @param _hash CID of the git-ipld commit to push\n    */\n    function openPR(string _title, string _description, string _ref, string _hash) external auth(OPEN_PR_ROLE) {\n        _openPR(msg.sender, _title, _description, _ref, _hash);\n    }\n\n    /**\n    * @notice Merge PR #`_id`\n    * @param _id ID of the PR\n    */\n    function mergePR(uint256 _id) external auth(SORT_PR_ROLE) {\n        require(canSortPR(_id), ERROR_REPO_CANNOT_SORT_PR);\n        _mergePR(_id);\n    }\n\n    /**\n    * @notice Reject PR #`_id`\n    * @param _id ID of the PR\n    */\n    function rejectPR(uint256 _id) external auth(SORT_PR_ROLE) {\n        require(canSortPR(_id), ERROR_REPO_CANNOT_SORT_PR);\n        _rejectPR(_id);\n    }\n\n    /**\n    * @notice Update repository name to '`_name`' and description to '`_description`'\n    * @param _name Name of the repository\n    * @param _description Description of the repository\n    */\n    function updateInformations(string _name, string _description) external auth(UPDATE_INFORMATIONS_ROLE) {\n        _updateInformations(_name, _description);\n    }\n\n    /***** public functions *****/\n\n    function ref(string _ref) public view returns (string hash) {\n        hash = refs[_ref];\n    }\n\n    function canSortPR(uint256 _id) public view returns (bool) {\n        if (_id < 1 || _id > PRsLength)\n            return false;\n\n        PR storage pr = PRs[_id];\n        if (pr.state != PRState.Pending)\n            return false;\n\n        return true;\n    }\n\n    /***** private functions *****/\n\n    function _push(string _ref, string _hash) internal {\n        refs[_ref] = _hash;\n\n        emit UpdateRef(_ref, _hash);\n    }\n\n    function _openPR(address _author, string _title, string _description, string _ref, string _hash) internal {\n        PRsLength = PRsLength + 1;\n        uint256 id = PRsLength;\n\n        PR storage pr = PRs[id];\n\n        pr.state = PRState.Pending;\n        pr.author = _author;\n        pr.title = _title;\n        pr.description = _description;\n        pr.ref = _ref;\n        pr.hash = _hash;\n\n        emit OpenPR(id, _author, _title, _description, _ref, _hash);\n    }\n\n    function _mergePR(uint256 _id) internal {\n        PR storage pr = PRs[_id];\n\n        pr.state = PRState.Merged;\n        _push(pr.ref, pr.hash);\n\n        emit MergePR(_id);\n    }\n\n    function _rejectPR(uint256 _id) internal {\n        PR storage pr = PRs[_id];\n\n        pr.state = PRState.Rejected;\n\n        emit RejectPR(_id);\n    }\n\n    function _updateInformations(string _name, string _description) internal {\n        name = _name;\n        description = _description;\n\n        emit UpdateInformations(_name, _description);\n    }\n\n\n}\n",
  "sourcePath": "@pando/repository/contracts/PandoRepository.sol",
  "ast": {
    "absolutePath": "@pando/repository/contracts/PandoRepository.sol",
    "exportedSymbols": {
      "PandoRepository": [
        12655
      ]
    },
    "id": 12656,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 12231,
        "literals": [
          "solidity",
          "^",
          "0.4",
          ".24"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:24:57"
      },
      {
        "id": 12232,
        "literals": [
          "experimental",
          "ABIEncoderV2"
        ],
        "nodeType": "PragmaDirective",
        "src": "25:33:57"
      },
      {
        "absolutePath": "@aragon/os/contracts/apps/AragonApp.sol",
        "file": "@aragon/os/contracts/apps/AragonApp.sol",
        "id": 12233,
        "nodeType": "ImportDirective",
        "scope": 12656,
        "sourceUnit": 8476,
        "src": "60:49:57",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 12234,
              "name": "AragonApp",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 8475,
              "src": "140:9:57",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_AragonApp_$8475",
                "typeString": "contract AragonApp"
              }
            },
            "id": 12235,
            "nodeType": "InheritanceSpecifier",
            "src": "140:9:57"
          }
        ],
        "contractDependencies": [
          7585,
          8347,
          8475,
          8488,
          8621,
          8663,
          8761,
          8789,
          8822,
          8869,
          9066,
          9476,
          9503,
          10769
        ],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 12655,
        "linearizedBaseContracts": [
          12655,
          8475,
          7585,
          9476,
          10769,
          9503,
          9066,
          8789,
          8621,
          8663,
          8488,
          8822,
          8761,
          8869,
          8347
        ],
        "name": "PandoRepository",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": true,
            "id": 12240,
            "name": "PUSH_ROLE",
            "nodeType": "VariableDeclaration",
            "scope": 12655,
            "src": "156:58:57",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
            },
            "typeName": {
              "id": 12236,
              "name": "bytes32",
              "nodeType": "ElementaryTypeName",
              "src": "156:7:57",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
              }
            },
            "value": {
              "argumentTypes": null,
              "arguments": [
                {
                  "argumentTypes": null,
                  "hexValue": "505553485f524f4c45",
                  "id": 12238,
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": true,
                  "kind": "string",
                  "lValueRequested": false,
                  "nodeType": "Literal",
                  "src": "202:11:57",
                  "subdenomination": null,
                  "typeDescriptions": {
                    "typeIdentifier": "t_stringliteral_58970290a6ca792fb53c5182a15b439b85baee6678bad095c42164f45a6ff17b",
                    "typeString": "literal_string \"PUSH_ROLE\""
                  },
                  "value": "PUSH_ROLE"
                }
              ],
              "expression": {
                "argumentTypes": [
                  {
                    "typeIdentifier": "t_stringliteral_58970290a6ca792fb53c5182a15b439b85baee6678bad095c42164f45a6ff17b",
                    "typeString": "literal_string \"PUSH_ROLE\""
                  }
                ],
                "id": 12237,
                "name": "keccak256",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 12664,
                "src": "192:9:57",
                "typeDescriptions": {
                  "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                  "typeString": "function () pure returns (bytes32)"
                }
              },
              "id": 12239,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "functionCall",
              "lValueRequested": false,
              "names": [],
              "nodeType": "FunctionCall",
              "src": "192:22:57",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
              }
            },
            "visibility": "public"
          },
          {
            "constant": true,
            "id": 12245,
            "name": "OPEN_PR_ROLE",
            "nodeType": "VariableDeclaration",
            "scope": 12655,
            "src": "220:64:57",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
            },
            "typeName": {
              "id": 12241,
              "name": "bytes32",
              "nodeType": "ElementaryTypeName",
              "src": "220:7:57",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
              }
            },
            "value": {
              "argumentTypes": null,
              "arguments": [
                {
                  "argumentTypes": null,
                  "hexValue": "4f50454e5f50525f524f4c45",
                  "id": 12243,
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": true,
                  "kind": "string",
                  "lValueRequested": false,
                  "nodeType": "Literal",
                  "src": "269:14:57",
                  "subdenomination": null,
                  "typeDescriptions": {
                    "typeIdentifier": "t_stringliteral_29fbc03e9150fd66074be13a8892e8a2d3271dee1aca2e4214db83d61e171498",
                    "typeString": "literal_string \"OPEN_PR_ROLE\""
                  },
                  "value": "OPEN_PR_ROLE"
                }
              ],
              "expression": {
                "argumentTypes": [
                  {
                    "typeIdentifier": "t_stringliteral_29fbc03e9150fd66074be13a8892e8a2d3271dee1aca2e4214db83d61e171498",
                    "typeString": "literal_string \"OPEN_PR_ROLE\""
                  }
                ],
                "id": 12242,
                "name": "keccak256",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 12664,
                "src": "259:9:57",
                "typeDescriptions": {
                  "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                  "typeString": "function () pure returns (bytes32)"
                }
              },
              "id": 12244,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "functionCall",
              "lValueRequested": false,
              "names": [],
              "nodeType": "FunctionCall",
              "src": "259:25:57",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
              }
            },
            "visibility": "public"
          },
          {
            "constant": true,
            "id": 12250,
            "name": "SORT_PR_ROLE",
            "nodeType": "VariableDeclaration",
            "scope": 12655,
            "src": "290:64:57",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
            },
            "typeName": {
              "id": 12246,
              "name": "bytes32",
              "nodeType": "ElementaryTypeName",
              "src": "290:7:57",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
              }
            },
            "value": {
              "argumentTypes": null,
              "arguments": [
                {
                  "argumentTypes": null,
                  "hexValue": "534f52545f50525f524f4c45",
                  "id": 12248,
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": true,
                  "kind": "string",
                  "lValueRequested": false,
                  "nodeType": "Literal",
                  "src": "339:14:57",
                  "subdenomination": null,
                  "typeDescriptions": {
                    "typeIdentifier": "t_stringliteral_8d92eec80164b74311f7ed5f4aca6701af1b4f36693883bc6c458abccf0c3651",
                    "typeString": "literal_string \"SORT_PR_ROLE\""
                  },
                  "value": "SORT_PR_ROLE"
                }
              ],
              "expression": {
                "argumentTypes": [
                  {
                    "typeIdentifier": "t_stringliteral_8d92eec80164b74311f7ed5f4aca6701af1b4f36693883bc6c458abccf0c3651",
                    "typeString": "literal_string \"SORT_PR_ROLE\""
                  }
                ],
                "id": 12247,
                "name": "keccak256",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 12664,
                "src": "329:9:57",
                "typeDescriptions": {
                  "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                  "typeString": "function () pure returns (bytes32)"
                }
              },
              "id": 12249,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "functionCall",
              "lValueRequested": false,
              "names": [],
              "nodeType": "FunctionCall",
              "src": "329:25:57",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
              }
            },
            "visibility": "public"
          },
          {
            "constant": true,
            "id": 12255,
            "name": "UPDATE_INFORMATIONS_ROLE",
            "nodeType": "VariableDeclaration",
            "scope": 12655,
            "src": "360:88:57",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
            },
            "typeName": {
              "id": 12251,
              "name": "bytes32",
              "nodeType": "ElementaryTypeName",
              "src": "360:7:57",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
              }
            },
            "value": {
              "argumentTypes": null,
              "arguments": [
                {
                  "argumentTypes": null,
                  "hexValue": "5550444154455f494e464f524d4154494f4e535f524f4c45",
                  "id": 12253,
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": true,
                  "kind": "string",
                  "lValueRequested": false,
                  "nodeType": "Literal",
                  "src": "421:26:57",
                  "subdenomination": null,
                  "typeDescriptions": {
                    "typeIdentifier": "t_stringliteral_74a223597378f808299a6300cf698787414684be97b685703f32fb47bea1002c",
                    "typeString": "literal_string \"UPDATE_INFORMATIONS_ROLE\""
                  },
                  "value": "UPDATE_INFORMATIONS_ROLE"
                }
              ],
              "expression": {
                "argumentTypes": [
                  {
                    "typeIdentifier": "t_stringliteral_74a223597378f808299a6300cf698787414684be97b685703f32fb47bea1002c",
                    "typeString": "literal_string \"UPDATE_INFORMATIONS_ROLE\""
                  }
                ],
                "id": 12252,
                "name": "keccak256",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 12664,
                "src": "411:9:57",
                "typeDescriptions": {
                  "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                  "typeString": "function () pure returns (bytes32)"
                }
              },
              "id": 12254,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "functionCall",
              "lValueRequested": false,
              "names": [],
              "nodeType": "FunctionCall",
              "src": "411:37:57",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
              }
            },
            "visibility": "public"
          },
          {
            "constant": true,
            "id": 12258,
            "name": "ERROR_REPO_CANNOT_SORT_PR",
            "nodeType": "VariableDeclaration",
            "scope": 12655,
            "src": "455:73:57",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_memory",
              "typeString": "string"
            },
            "typeName": {
              "id": 12256,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "455:6:57",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "5245504f5f43414e4e4f545f534f52545f5052",
              "id": 12257,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "507:21:57",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_e415362e0ce0a3f23158d66372aa9723a10236a52d2e4ebdb7ef95051e035cfb",
                "typeString": "literal_string \"REPO_CANNOT_SORT_PR\""
              },
              "value": "REPO_CANNOT_SORT_PR"
            },
            "visibility": "private"
          },
          {
            "canonicalName": "PandoRepository.PRState",
            "id": 12262,
            "members": [
              {
                "id": 12259,
                "name": "Pending",
                "nodeType": "EnumValue",
                "src": "550:7:57"
              },
              {
                "id": 12260,
                "name": "Merged",
                "nodeType": "EnumValue",
                "src": "559:6:57"
              },
              {
                "id": 12261,
                "name": "Rejected",
                "nodeType": "EnumValue",
                "src": "567:8:57"
              }
            ],
            "name": "PRState",
            "nodeType": "EnumDefinition",
            "src": "535:42:57"
          },
          {
            "canonicalName": "PandoRepository.PR",
            "id": 12275,
            "members": [
              {
                "constant": false,
                "id": 12264,
                "name": "state",
                "nodeType": "VariableDeclaration",
                "scope": 12275,
                "src": "603:13:57",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_enum$_PRState_$12262",
                  "typeString": "enum PandoRepository.PRState"
                },
                "typeName": {
                  "contractScope": null,
                  "id": 12263,
                  "name": "PRState",
                  "nodeType": "UserDefinedTypeName",
                  "referencedDeclaration": 12262,
                  "src": "603:7:57",
                  "typeDescriptions": {
                    "typeIdentifier": "t_enum$_PRState_$12262",
                    "typeString": "enum PandoRepository.PRState"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 12266,
                "name": "author",
                "nodeType": "VariableDeclaration",
                "scope": 12275,
                "src": "626:14:57",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 12265,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "626:7:57",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 12268,
                "name": "title",
                "nodeType": "VariableDeclaration",
                "scope": 12275,
                "src": "650:13:57",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_string_storage_ptr",
                  "typeString": "string"
                },
                "typeName": {
                  "id": 12267,
                  "name": "string",
                  "nodeType": "ElementaryTypeName",
                  "src": "650:6:57",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_storage_ptr",
                    "typeString": "string"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 12270,
                "name": "description",
                "nodeType": "VariableDeclaration",
                "scope": 12275,
                "src": "673:19:57",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_string_storage_ptr",
                  "typeString": "string"
                },
                "typeName": {
                  "id": 12269,
                  "name": "string",
                  "nodeType": "ElementaryTypeName",
                  "src": "673:6:57",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_storage_ptr",
                    "typeString": "string"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 12272,
                "name": "ref",
                "nodeType": "VariableDeclaration",
                "scope": 12275,
                "src": "702:11:57",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_string_storage_ptr",
                  "typeString": "string"
                },
                "typeName": {
                  "id": 12271,
                  "name": "string",
                  "nodeType": "ElementaryTypeName",
                  "src": "702:6:57",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_storage_ptr",
                    "typeString": "string"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 12274,
                "name": "hash",
                "nodeType": "VariableDeclaration",
                "scope": 12275,
                "src": "723:12:57",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_string_storage_ptr",
                  "typeString": "string"
                },
                "typeName": {
                  "id": 12273,
                  "name": "string",
                  "nodeType": "ElementaryTypeName",
                  "src": "723:6:57",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_storage_ptr",
                    "typeString": "string"
                  }
                },
                "value": null,
                "visibility": "internal"
              }
            ],
            "name": "PR",
            "nodeType": "StructDefinition",
            "scope": 12655,
            "src": "583:159:57",
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 12277,
            "name": "name",
            "nodeType": "VariableDeclaration",
            "scope": 12655,
            "src": "748:18:57",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_storage",
              "typeString": "string"
            },
            "typeName": {
              "id": 12276,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "748:6:57",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 12279,
            "name": "description",
            "nodeType": "VariableDeclaration",
            "scope": 12655,
            "src": "772:25:57",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_storage",
              "typeString": "string"
            },
            "typeName": {
              "id": 12278,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "772:6:57",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 12283,
            "name": "refs",
            "nodeType": "VariableDeclaration",
            "scope": 12655,
            "src": "803:31:57",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_string_memory_$_t_string_storage_$",
              "typeString": "mapping(string => string)"
            },
            "typeName": {
              "id": 12282,
              "keyType": {
                "id": 12280,
                "name": "string",
                "nodeType": "ElementaryTypeName",
                "src": "812:6:57",
                "typeDescriptions": {
                  "typeIdentifier": "t_string_storage_ptr",
                  "typeString": "string"
                }
              },
              "nodeType": "Mapping",
              "src": "803:26:57",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_string_memory_$_t_string_storage_$",
                "typeString": "mapping(string => string)"
              },
              "valueType": {
                "id": 12281,
                "name": "string",
                "nodeType": "ElementaryTypeName",
                "src": "822:6:57",
                "typeDescriptions": {
                  "typeIdentifier": "t_string_storage_ptr",
                  "typeString": "string"
                }
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 12287,
            "name": "PRs",
            "nodeType": "VariableDeclaration",
            "scope": 12655,
            "src": "841:33:57",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_PR_$12275_storage_$",
              "typeString": "mapping(uint256 => struct PandoRepository.PR)"
            },
            "typeName": {
              "id": 12286,
              "keyType": {
                "id": 12284,
                "name": "uint256",
                "nodeType": "ElementaryTypeName",
                "src": "849:7:57",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                }
              },
              "nodeType": "Mapping",
              "src": "841:22:57",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_PR_$12275_storage_$",
                "typeString": "mapping(uint256 => struct PandoRepository.PR)"
              },
              "valueType": {
                "contractScope": null,
                "id": 12285,
                "name": "PR",
                "nodeType": "UserDefinedTypeName",
                "referencedDeclaration": 12275,
                "src": "860:2:57",
                "typeDescriptions": {
                  "typeIdentifier": "t_struct$_PR_$12275_storage_ptr",
                  "typeString": "struct PandoRepository.PR"
                }
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 12289,
            "name": "PRsLength",
            "nodeType": "VariableDeclaration",
            "scope": 12655,
            "src": "880:24:57",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 12288,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "880:7:57",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 12295,
            "name": "UpdateRef",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 12294,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12291,
                  "indexed": false,
                  "name": "ref",
                  "nodeType": "VariableDeclaration",
                  "scope": 12295,
                  "src": "927:10:57",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 12290,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "927:6:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12293,
                  "indexed": false,
                  "name": "hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 12295,
                  "src": "939:11:57",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 12292,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "939:6:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "926:25:57"
            },
            "src": "911:41:57"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 12309,
            "name": "OpenPR",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 12308,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12297,
                  "indexed": true,
                  "name": "id",
                  "nodeType": "VariableDeclaration",
                  "scope": 12309,
                  "src": "970:18:57",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 12296,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "970:7:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12299,
                  "indexed": false,
                  "name": "author",
                  "nodeType": "VariableDeclaration",
                  "scope": 12309,
                  "src": "990:14:57",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 12298,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "990:7:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12301,
                  "indexed": false,
                  "name": "title",
                  "nodeType": "VariableDeclaration",
                  "scope": 12309,
                  "src": "1006:12:57",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 12300,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "1006:6:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12303,
                  "indexed": false,
                  "name": "description",
                  "nodeType": "VariableDeclaration",
                  "scope": 12309,
                  "src": "1020:18:57",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 12302,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "1020:6:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12305,
                  "indexed": false,
                  "name": "ref",
                  "nodeType": "VariableDeclaration",
                  "scope": 12309,
                  "src": "1040:10:57",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 12304,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "1040:6:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12307,
                  "indexed": false,
                  "name": "hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 12309,
                  "src": "1052:11:57",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 12306,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "1052:6:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "969:95:57"
            },
            "src": "957:108:57"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 12313,
            "name": "MergePR",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 12312,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12311,
                  "indexed": true,
                  "name": "id",
                  "nodeType": "VariableDeclaration",
                  "scope": 12313,
                  "src": "1084:18:57",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 12310,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1084:7:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1083:20:57"
            },
            "src": "1070:34:57"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 12317,
            "name": "RejectPR",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 12316,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12315,
                  "indexed": true,
                  "name": "id",
                  "nodeType": "VariableDeclaration",
                  "scope": 12317,
                  "src": "1124:18:57",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 12314,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1124:7:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1123:20:57"
            },
            "src": "1109:35:57"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 12323,
            "name": "UpdateInformations",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 12322,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12319,
                  "indexed": false,
                  "name": "name",
                  "nodeType": "VariableDeclaration",
                  "scope": 12323,
                  "src": "1174:11:57",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 12318,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "1174:6:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12321,
                  "indexed": false,
                  "name": "description",
                  "nodeType": "VariableDeclaration",
                  "scope": 12323,
                  "src": "1187:18:57",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 12320,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "1187:6:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1173:33:57"
            },
            "src": "1149:58:57"
          },
          {
            "body": {
              "id": 12340,
              "nodeType": "Block",
              "src": "1324:81:57",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 12332,
                      "name": "initialized",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8746,
                      "src": "1334:11:57",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$",
                        "typeString": "function ()"
                      }
                    },
                    "id": 12333,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1334:13:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 12334,
                  "nodeType": "ExpressionStatement",
                  "src": "1334:13:57"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 12336,
                        "name": "_name",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12325,
                        "src": "1378:5:57",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 12337,
                        "name": "_description",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12327,
                        "src": "1385:12:57",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        },
                        {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        }
                      ],
                      "id": 12335,
                      "name": "_updateInformations",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12654,
                      "src": "1358:19:57",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (string memory,string memory)"
                      }
                    },
                    "id": 12338,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1358:40:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 12339,
                  "nodeType": "ExpressionStatement",
                  "src": "1358:40:57"
                }
              ]
            },
            "documentation": "*** external functions ****",
            "id": 12341,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 12330,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 12329,
                  "name": "onlyInit",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 8693,
                  "src": "1315:8:57",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "1315:8:57"
              }
            ],
            "name": "initialize",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 12328,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12325,
                  "name": "_name",
                  "nodeType": "VariableDeclaration",
                  "scope": 12341,
                  "src": "1271:12:57",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_calldata_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 12324,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "1271:6:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12327,
                  "name": "_description",
                  "nodeType": "VariableDeclaration",
                  "scope": 12341,
                  "src": "1285:19:57",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_calldata_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 12326,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "1285:6:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1270:35:57"
            },
            "payable": false,
            "returnParameters": {
              "id": 12331,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1324:0:57"
            },
            "scope": 12655,
            "src": "1251:154:57",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 12356,
              "nodeType": "Block",
              "src": "1622:35:57",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 12352,
                        "name": "_ref",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12343,
                        "src": "1638:4:57",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 12353,
                        "name": "_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12345,
                        "src": "1644:5:57",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        },
                        {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        }
                      ],
                      "id": 12351,
                      "name": "_push",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12504,
                      "src": "1632:5:57",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (string memory,string memory)"
                      }
                    },
                    "id": 12354,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1632:18:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 12355,
                  "nodeType": "ExpressionStatement",
                  "src": "1632:18:57"
                }
              ]
            },
            "documentation": "@notice Push `_hash` to `_ref`\n@param _ref Reference to push to\n@param _hash CID of the git-ipld commit to push",
            "id": 12357,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 12348,
                    "name": "PUSH_ROLE",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 12240,
                    "src": "1611:9:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 12349,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 12347,
                  "name": "auth",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 8387,
                  "src": "1606:4:57",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$",
                    "typeString": "modifier (bytes32)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "1606:15:57"
              }
            ],
            "name": "push",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 12346,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12343,
                  "name": "_ref",
                  "nodeType": "VariableDeclaration",
                  "scope": 12357,
                  "src": "1570:11:57",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_calldata_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 12342,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "1570:6:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12345,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 12357,
                  "src": "1583:12:57",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_calldata_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 12344,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "1583:6:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1569:27:57"
            },
            "payable": false,
            "returnParameters": {
              "id": 12350,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1622:0:57"
            },
            "scope": 12655,
            "src": "1556:101:57",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 12380,
              "nodeType": "Block",
              "src": "1995:71:57",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 12372,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 12670,
                          "src": "2013:3:57",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 12373,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "2013:10:57",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 12374,
                        "name": "_title",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12359,
                        "src": "2025:6:57",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 12375,
                        "name": "_description",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12361,
                        "src": "2033:12:57",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 12376,
                        "name": "_ref",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12363,
                        "src": "2047:4:57",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 12377,
                        "name": "_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12365,
                        "src": "2053:5:57",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        },
                        {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        },
                        {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        },
                        {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        }
                      ],
                      "id": 12371,
                      "name": "_openPR",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12580,
                      "src": "2005:7:57",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (address,string memory,string memory,string memory,string memory)"
                      }
                    },
                    "id": 12378,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2005:54:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 12379,
                  "nodeType": "ExpressionStatement",
                  "src": "2005:54:57"
                }
              ]
            },
            "documentation": "@notice Open PR '`_title`'\n@param _title Title of the PR\n@param _description Description of the PR\n@param _ref Reference to push to\n@param _hash CID of the git-ipld commit to push",
            "id": 12381,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 12368,
                    "name": "OPEN_PR_ROLE",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 12245,
                    "src": "1981:12:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 12369,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 12367,
                  "name": "auth",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 8387,
                  "src": "1976:4:57",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$",
                    "typeString": "modifier (bytes32)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "1976:18:57"
              }
            ],
            "name": "openPR",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 12366,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12359,
                  "name": "_title",
                  "nodeType": "VariableDeclaration",
                  "scope": 12381,
                  "src": "1904:13:57",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_calldata_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 12358,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "1904:6:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12361,
                  "name": "_description",
                  "nodeType": "VariableDeclaration",
                  "scope": 12381,
                  "src": "1919:19:57",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_calldata_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 12360,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "1919:6:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12363,
                  "name": "_ref",
                  "nodeType": "VariableDeclaration",
                  "scope": 12381,
                  "src": "1940:11:57",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_calldata_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 12362,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "1940:6:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12365,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 12381,
                  "src": "1953:12:57",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_calldata_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 12364,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "1953:6:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1903:63:57"
            },
            "payable": false,
            "returnParameters": {
              "id": 12370,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1995:0:57"
            },
            "scope": 12655,
            "src": "1888:178:57",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 12400,
              "nodeType": "Block",
              "src": "2205:90:57",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 12391,
                            "name": "_id",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 12383,
                            "src": "2233:3:57",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 12390,
                          "name": "canSortPR",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 12485,
                          "src": "2223:9:57",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$",
                            "typeString": "function (uint256) view returns (bool)"
                          }
                        },
                        "id": 12392,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2223:14:57",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 12393,
                        "name": "ERROR_REPO_CANNOT_SORT_PR",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12258,
                        "src": "2239:25:57",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory",
                          "typeString": "string memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_string_memory",
                          "typeString": "string memory"
                        }
                      ],
                      "id": 12389,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        12673,
                        12674
                      ],
                      "referencedDeclaration": 12674,
                      "src": "2215:7:57",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 12394,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2215:50:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 12395,
                  "nodeType": "ExpressionStatement",
                  "src": "2215:50:57"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 12397,
                        "name": "_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12383,
                        "src": "2284:3:57",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 12396,
                      "name": "_mergePR",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12610,
                      "src": "2275:8:57",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$",
                        "typeString": "function (uint256)"
                      }
                    },
                    "id": 12398,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2275:13:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 12399,
                  "nodeType": "ExpressionStatement",
                  "src": "2275:13:57"
                }
              ]
            },
            "documentation": "@notice Merge PR #`_id`\n@param _id ID of the PR",
            "id": 12401,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 12386,
                    "name": "SORT_PR_ROLE",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 12250,
                    "src": "2191:12:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 12387,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 12385,
                  "name": "auth",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 8387,
                  "src": "2186:4:57",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$",
                    "typeString": "modifier (bytes32)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "2186:18:57"
              }
            ],
            "name": "mergePR",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 12384,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12383,
                  "name": "_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 12401,
                  "src": "2164:11:57",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 12382,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2164:7:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2163:13:57"
            },
            "payable": false,
            "returnParameters": {
              "id": 12388,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2205:0:57"
            },
            "scope": 12655,
            "src": "2147:148:57",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 12420,
              "nodeType": "Block",
              "src": "2436:91:57",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 12411,
                            "name": "_id",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 12403,
                            "src": "2464:3:57",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 12410,
                          "name": "canSortPR",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 12485,
                          "src": "2454:9:57",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$",
                            "typeString": "function (uint256) view returns (bool)"
                          }
                        },
                        "id": 12412,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2454:14:57",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 12413,
                        "name": "ERROR_REPO_CANNOT_SORT_PR",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12258,
                        "src": "2470:25:57",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory",
                          "typeString": "string memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_string_memory",
                          "typeString": "string memory"
                        }
                      ],
                      "id": 12409,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        12673,
                        12674
                      ],
                      "referencedDeclaration": 12674,
                      "src": "2446:7:57",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 12414,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2446:50:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 12415,
                  "nodeType": "ExpressionStatement",
                  "src": "2446:50:57"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 12417,
                        "name": "_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12403,
                        "src": "2516:3:57",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 12416,
                      "name": "_rejectPR",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12633,
                      "src": "2506:9:57",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$",
                        "typeString": "function (uint256)"
                      }
                    },
                    "id": 12418,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2506:14:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 12419,
                  "nodeType": "ExpressionStatement",
                  "src": "2506:14:57"
                }
              ]
            },
            "documentation": "@notice Reject PR #`_id`\n@param _id ID of the PR",
            "id": 12421,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 12406,
                    "name": "SORT_PR_ROLE",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 12250,
                    "src": "2422:12:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 12407,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 12405,
                  "name": "auth",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 8387,
                  "src": "2417:4:57",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$",
                    "typeString": "modifier (bytes32)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "2417:18:57"
              }
            ],
            "name": "rejectPR",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 12404,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12403,
                  "name": "_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 12421,
                  "src": "2395:11:57",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 12402,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2395:7:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2394:13:57"
            },
            "payable": false,
            "returnParameters": {
              "id": 12408,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2436:0:57"
            },
            "scope": 12655,
            "src": "2377:150:57",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 12436,
              "nodeType": "Block",
              "src": "2835:57:57",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 12432,
                        "name": "_name",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12423,
                        "src": "2865:5:57",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 12433,
                        "name": "_description",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12425,
                        "src": "2872:12:57",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        },
                        {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        }
                      ],
                      "id": 12431,
                      "name": "_updateInformations",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12654,
                      "src": "2845:19:57",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (string memory,string memory)"
                      }
                    },
                    "id": 12434,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2845:40:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 12435,
                  "nodeType": "ExpressionStatement",
                  "src": "2845:40:57"
                }
              ]
            },
            "documentation": "@notice Update repository name to '`_name`' and description to '`_description`'\n@param _name Name of the repository\n@param _description Description of the repository",
            "id": 12437,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 12428,
                    "name": "UPDATE_INFORMATIONS_ROLE",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 12255,
                    "src": "2809:24:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 12429,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 12427,
                  "name": "auth",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 8387,
                  "src": "2804:4:57",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$",
                    "typeString": "modifier (bytes32)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "2804:30:57"
              }
            ],
            "name": "updateInformations",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 12426,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12423,
                  "name": "_name",
                  "nodeType": "VariableDeclaration",
                  "scope": 12437,
                  "src": "2760:12:57",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_calldata_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 12422,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "2760:6:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12425,
                  "name": "_description",
                  "nodeType": "VariableDeclaration",
                  "scope": 12437,
                  "src": "2774:19:57",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_calldata_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 12424,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "2774:6:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2759:35:57"
            },
            "payable": false,
            "returnParameters": {
              "id": 12430,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2835:0:57"
            },
            "scope": 12655,
            "src": "2732:160:57",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 12450,
              "nodeType": "Block",
              "src": "2994:34:57",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 12448,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 12444,
                      "name": "hash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12442,
                      "src": "3004:4:57",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_memory_ptr",
                        "typeString": "string memory"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 12445,
                        "name": "refs",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12283,
                        "src": "3011:4:57",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_string_memory_$_t_string_storage_$",
                          "typeString": "mapping(string memory => string storage ref)"
                        }
                      },
                      "id": 12447,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 12446,
                        "name": "_ref",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12439,
                        "src": "3016:4:57",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "3011:10:57",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_storage",
                        "typeString": "string storage ref"
                      }
                    },
                    "src": "3004:17:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_memory_ptr",
                      "typeString": "string memory"
                    }
                  },
                  "id": 12449,
                  "nodeType": "ExpressionStatement",
                  "src": "3004:17:57"
                }
              ]
            },
            "documentation": "*** public functions ****",
            "id": 12451,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "ref",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 12440,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12439,
                  "name": "_ref",
                  "nodeType": "VariableDeclaration",
                  "scope": 12451,
                  "src": "2947:11:57",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 12438,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "2947:6:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2946:13:57"
            },
            "payable": false,
            "returnParameters": {
              "id": 12443,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12442,
                  "name": "hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 12451,
                  "src": "2981:11:57",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 12441,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "2981:6:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2980:13:57"
            },
            "scope": 12655,
            "src": "2934:94:57",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 12484,
              "nodeType": "Block",
              "src": "3093:197:57",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "id": 12464,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 12460,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "id": 12458,
                        "name": "_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12453,
                        "src": "3107:3:57",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "<",
                      "rightExpression": {
                        "argumentTypes": null,
                        "hexValue": "31",
                        "id": 12459,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3113:1:57",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_1_by_1",
                          "typeString": "int_const 1"
                        },
                        "value": "1"
                      },
                      "src": "3107:7:57",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "||",
                    "rightExpression": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 12463,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "id": 12461,
                        "name": "_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12453,
                        "src": "3118:3:57",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": ">",
                      "rightExpression": {
                        "argumentTypes": null,
                        "id": 12462,
                        "name": "PRsLength",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12289,
                        "src": "3124:9:57",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "3118:15:57",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "3107:26:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 12467,
                  "nodeType": "IfStatement",
                  "src": "3103:56:57",
                  "trueBody": {
                    "expression": {
                      "argumentTypes": null,
                      "hexValue": "66616c7365",
                      "id": 12465,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "bool",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "3154:5:57",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "value": "false"
                    },
                    "functionReturnParameters": 12457,
                    "id": 12466,
                    "nodeType": "Return",
                    "src": "3147:12:57"
                  }
                },
                {
                  "assignments": [
                    12469
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 12469,
                      "name": "pr",
                      "nodeType": "VariableDeclaration",
                      "scope": 12485,
                      "src": "3170:13:57",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_PR_$12275_storage_ptr",
                        "typeString": "struct PandoRepository.PR"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 12468,
                        "name": "PR",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 12275,
                        "src": "3170:2:57",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_PR_$12275_storage_ptr",
                          "typeString": "struct PandoRepository.PR"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 12473,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 12470,
                      "name": "PRs",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12287,
                      "src": "3186:3:57",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_PR_$12275_storage_$",
                        "typeString": "mapping(uint256 => struct PandoRepository.PR storage ref)"
                      }
                    },
                    "id": 12472,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 12471,
                      "name": "_id",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12453,
                      "src": "3190:3:57",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "3186:8:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_PR_$12275_storage",
                      "typeString": "struct PandoRepository.PR storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3170:24:57"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_enum$_PRState_$12262",
                      "typeString": "enum PandoRepository.PRState"
                    },
                    "id": 12478,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 12474,
                        "name": "pr",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12469,
                        "src": "3208:2:57",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_PR_$12275_storage_ptr",
                          "typeString": "struct PandoRepository.PR storage pointer"
                        }
                      },
                      "id": 12475,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "state",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 12264,
                      "src": "3208:8:57",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_PRState_$12262",
                        "typeString": "enum PandoRepository.PRState"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "!=",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 12476,
                        "name": "PRState",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12262,
                        "src": "3220:7:57",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_enum$_PRState_$12262_$",
                          "typeString": "type(enum PandoRepository.PRState)"
                        }
                      },
                      "id": 12477,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberName": "Pending",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "3220:15:57",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_PRState_$12262",
                        "typeString": "enum PandoRepository.PRState"
                      }
                    },
                    "src": "3208:27:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 12481,
                  "nodeType": "IfStatement",
                  "src": "3204:57:57",
                  "trueBody": {
                    "expression": {
                      "argumentTypes": null,
                      "hexValue": "66616c7365",
                      "id": 12479,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "bool",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "3256:5:57",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "value": "false"
                    },
                    "functionReturnParameters": 12457,
                    "id": 12480,
                    "nodeType": "Return",
                    "src": "3249:12:57"
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "hexValue": "74727565",
                    "id": 12482,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "bool",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "3279:4:57",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "value": "true"
                  },
                  "functionReturnParameters": 12457,
                  "id": 12483,
                  "nodeType": "Return",
                  "src": "3272:11:57"
                }
              ]
            },
            "documentation": null,
            "id": 12485,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "canSortPR",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 12454,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12453,
                  "name": "_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 12485,
                  "src": "3053:11:57",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 12452,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3053:7:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3052:13:57"
            },
            "payable": false,
            "returnParameters": {
              "id": 12457,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12456,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 12485,
                  "src": "3087:4:57",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 12455,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "3087:4:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3086:6:57"
            },
            "scope": 12655,
            "src": "3034:256:57",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 12503,
              "nodeType": "Block",
              "src": "3384:73:57",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 12496,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 12492,
                        "name": "refs",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12283,
                        "src": "3394:4:57",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_string_memory_$_t_string_storage_$",
                          "typeString": "mapping(string memory => string storage ref)"
                        }
                      },
                      "id": 12494,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 12493,
                        "name": "_ref",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12487,
                        "src": "3399:4:57",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "3394:10:57",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_storage",
                        "typeString": "string storage ref"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 12495,
                      "name": "_hash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12489,
                      "src": "3407:5:57",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_memory_ptr",
                        "typeString": "string memory"
                      }
                    },
                    "src": "3394:18:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage",
                      "typeString": "string storage ref"
                    }
                  },
                  "id": 12497,
                  "nodeType": "ExpressionStatement",
                  "src": "3394:18:57"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 12499,
                        "name": "_ref",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12487,
                        "src": "3438:4:57",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 12500,
                        "name": "_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12489,
                        "src": "3444:5:57",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        },
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      ],
                      "id": 12498,
                      "name": "UpdateRef",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12295,
                      "src": "3428:9:57",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (string memory,string memory)"
                      }
                    },
                    "id": 12501,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3428:22:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 12502,
                  "nodeType": "EmitStatement",
                  "src": "3423:27:57"
                }
              ]
            },
            "documentation": "*** private functions ****",
            "id": 12504,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "_push",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 12490,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12487,
                  "name": "_ref",
                  "nodeType": "VariableDeclaration",
                  "scope": 12504,
                  "src": "3348:11:57",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 12486,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "3348:6:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12489,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 12504,
                  "src": "3361:12:57",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 12488,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "3361:6:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3347:27:57"
            },
            "payable": false,
            "returnParameters": {
              "id": 12491,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3384:0:57"
            },
            "scope": 12655,
            "src": "3333:124:57",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 12579,
              "nodeType": "Block",
              "src": "3569:358:57",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 12521,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 12517,
                      "name": "PRsLength",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12289,
                      "src": "3579:9:57",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 12520,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "id": 12518,
                        "name": "PRsLength",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12289,
                        "src": "3591:9:57",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "+",
                      "rightExpression": {
                        "argumentTypes": null,
                        "hexValue": "31",
                        "id": 12519,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3603:1:57",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_1_by_1",
                          "typeString": "int_const 1"
                        },
                        "value": "1"
                      },
                      "src": "3591:13:57",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "3579:25:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 12522,
                  "nodeType": "ExpressionStatement",
                  "src": "3579:25:57"
                },
                {
                  "assignments": [
                    12524
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 12524,
                      "name": "id",
                      "nodeType": "VariableDeclaration",
                      "scope": 12580,
                      "src": "3614:10:57",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 12523,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "3614:7:57",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 12526,
                  "initialValue": {
                    "argumentTypes": null,
                    "id": 12525,
                    "name": "PRsLength",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 12289,
                    "src": "3627:9:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3614:22:57"
                },
                {
                  "assignments": [
                    12528
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 12528,
                      "name": "pr",
                      "nodeType": "VariableDeclaration",
                      "scope": 12580,
                      "src": "3647:13:57",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_PR_$12275_storage_ptr",
                        "typeString": "struct PandoRepository.PR"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 12527,
                        "name": "PR",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 12275,
                        "src": "3647:2:57",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_PR_$12275_storage_ptr",
                          "typeString": "struct PandoRepository.PR"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 12532,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 12529,
                      "name": "PRs",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12287,
                      "src": "3663:3:57",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_PR_$12275_storage_$",
                        "typeString": "mapping(uint256 => struct PandoRepository.PR storage ref)"
                      }
                    },
                    "id": 12531,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 12530,
                      "name": "id",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12524,
                      "src": "3667:2:57",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "3663:7:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_PR_$12275_storage",
                      "typeString": "struct PandoRepository.PR storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3647:23:57"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 12538,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 12533,
                        "name": "pr",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12528,
                        "src": "3681:2:57",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_PR_$12275_storage_ptr",
                          "typeString": "struct PandoRepository.PR storage pointer"
                        }
                      },
                      "id": 12535,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "state",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 12264,
                      "src": "3681:8:57",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_PRState_$12262",
                        "typeString": "enum PandoRepository.PRState"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 12536,
                        "name": "PRState",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12262,
                        "src": "3692:7:57",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_enum$_PRState_$12262_$",
                          "typeString": "type(enum PandoRepository.PRState)"
                        }
                      },
                      "id": 12537,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberName": "Pending",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "3692:15:57",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_PRState_$12262",
                        "typeString": "enum PandoRepository.PRState"
                      }
                    },
                    "src": "3681:26:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_PRState_$12262",
                      "typeString": "enum PandoRepository.PRState"
                    }
                  },
                  "id": 12539,
                  "nodeType": "ExpressionStatement",
                  "src": "3681:26:57"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 12544,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 12540,
                        "name": "pr",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12528,
                        "src": "3717:2:57",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_PR_$12275_storage_ptr",
                          "typeString": "struct PandoRepository.PR storage pointer"
                        }
                      },
                      "id": 12542,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "author",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 12266,
                      "src": "3717:9:57",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 12543,
                      "name": "_author",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12506,
                      "src": "3729:7:57",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "3717:19:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 12545,
                  "nodeType": "ExpressionStatement",
                  "src": "3717:19:57"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 12550,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 12546,
                        "name": "pr",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12528,
                        "src": "3746:2:57",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_PR_$12275_storage_ptr",
                          "typeString": "struct PandoRepository.PR storage pointer"
                        }
                      },
                      "id": 12548,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "title",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 12268,
                      "src": "3746:8:57",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_storage",
                        "typeString": "string storage ref"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 12549,
                      "name": "_title",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12508,
                      "src": "3757:6:57",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_memory_ptr",
                        "typeString": "string memory"
                      }
                    },
                    "src": "3746:17:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage",
                      "typeString": "string storage ref"
                    }
                  },
                  "id": 12551,
                  "nodeType": "ExpressionStatement",
                  "src": "3746:17:57"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 12556,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 12552,
                        "name": "pr",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12528,
                        "src": "3773:2:57",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_PR_$12275_storage_ptr",
                          "typeString": "struct PandoRepository.PR storage pointer"
                        }
                      },
                      "id": 12554,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "description",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 12270,
                      "src": "3773:14:57",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_storage",
                        "typeString": "string storage ref"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 12555,
                      "name": "_description",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12510,
                      "src": "3790:12:57",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_memory_ptr",
                        "typeString": "string memory"
                      }
                    },
                    "src": "3773:29:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage",
                      "typeString": "string storage ref"
                    }
                  },
                  "id": 12557,
                  "nodeType": "ExpressionStatement",
                  "src": "3773:29:57"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 12562,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 12558,
                        "name": "pr",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12528,
                        "src": "3812:2:57",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_PR_$12275_storage_ptr",
                          "typeString": "struct PandoRepository.PR storage pointer"
                        }
                      },
                      "id": 12560,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "ref",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 12272,
                      "src": "3812:6:57",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_storage",
                        "typeString": "string storage ref"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 12561,
                      "name": "_ref",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12512,
                      "src": "3821:4:57",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_memory_ptr",
                        "typeString": "string memory"
                      }
                    },
                    "src": "3812:13:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage",
                      "typeString": "string storage ref"
                    }
                  },
                  "id": 12563,
                  "nodeType": "ExpressionStatement",
                  "src": "3812:13:57"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 12568,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 12564,
                        "name": "pr",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12528,
                        "src": "3835:2:57",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_PR_$12275_storage_ptr",
                          "typeString": "struct PandoRepository.PR storage pointer"
                        }
                      },
                      "id": 12566,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "hash",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 12274,
                      "src": "3835:7:57",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_storage",
                        "typeString": "string storage ref"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 12567,
                      "name": "_hash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12514,
                      "src": "3845:5:57",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_memory_ptr",
                        "typeString": "string memory"
                      }
                    },
                    "src": "3835:15:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage",
                      "typeString": "string storage ref"
                    }
                  },
                  "id": 12569,
                  "nodeType": "ExpressionStatement",
                  "src": "3835:15:57"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 12571,
                        "name": "id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12524,
                        "src": "3873:2:57",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 12572,
                        "name": "_author",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12506,
                        "src": "3877:7:57",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 12573,
                        "name": "_title",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12508,
                        "src": "3886:6:57",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 12574,
                        "name": "_description",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12510,
                        "src": "3894:12:57",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 12575,
                        "name": "_ref",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12512,
                        "src": "3908:4:57",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 12576,
                        "name": "_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12514,
                        "src": "3914:5:57",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        },
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        },
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        },
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      ],
                      "id": 12570,
                      "name": "OpenPR",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12309,
                      "src": "3866:6:57",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_address_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (uint256,address,string memory,string memory,string memory,string memory)"
                      }
                    },
                    "id": 12577,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3866:54:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 12578,
                  "nodeType": "EmitStatement",
                  "src": "3861:59:57"
                }
              ]
            },
            "documentation": null,
            "id": 12580,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "_openPR",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 12515,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12506,
                  "name": "_author",
                  "nodeType": "VariableDeclaration",
                  "scope": 12580,
                  "src": "3480:15:57",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 12505,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "3480:7:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12508,
                  "name": "_title",
                  "nodeType": "VariableDeclaration",
                  "scope": 12580,
                  "src": "3497:13:57",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 12507,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "3497:6:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12510,
                  "name": "_description",
                  "nodeType": "VariableDeclaration",
                  "scope": 12580,
                  "src": "3512:19:57",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 12509,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "3512:6:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12512,
                  "name": "_ref",
                  "nodeType": "VariableDeclaration",
                  "scope": 12580,
                  "src": "3533:11:57",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 12511,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "3533:6:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12514,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 12580,
                  "src": "3546:12:57",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 12513,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "3546:6:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3479:80:57"
            },
            "payable": false,
            "returnParameters": {
              "id": 12516,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3569:0:57"
            },
            "scope": 12655,
            "src": "3463:464:57",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 12609,
              "nodeType": "Block",
              "src": "3973:137:57",
              "statements": [
                {
                  "assignments": [
                    12586
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 12586,
                      "name": "pr",
                      "nodeType": "VariableDeclaration",
                      "scope": 12610,
                      "src": "3983:13:57",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_PR_$12275_storage_ptr",
                        "typeString": "struct PandoRepository.PR"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 12585,
                        "name": "PR",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 12275,
                        "src": "3983:2:57",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_PR_$12275_storage_ptr",
                          "typeString": "struct PandoRepository.PR"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 12590,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 12587,
                      "name": "PRs",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12287,
                      "src": "3999:3:57",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_PR_$12275_storage_$",
                        "typeString": "mapping(uint256 => struct PandoRepository.PR storage ref)"
                      }
                    },
                    "id": 12589,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 12588,
                      "name": "_id",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12582,
                      "src": "4003:3:57",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "3999:8:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_PR_$12275_storage",
                      "typeString": "struct PandoRepository.PR storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3983:24:57"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 12596,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 12591,
                        "name": "pr",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12586,
                        "src": "4018:2:57",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_PR_$12275_storage_ptr",
                          "typeString": "struct PandoRepository.PR storage pointer"
                        }
                      },
                      "id": 12593,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "state",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 12264,
                      "src": "4018:8:57",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_PRState_$12262",
                        "typeString": "enum PandoRepository.PRState"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 12594,
                        "name": "PRState",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12262,
                        "src": "4029:7:57",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_enum$_PRState_$12262_$",
                          "typeString": "type(enum PandoRepository.PRState)"
                        }
                      },
                      "id": 12595,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberName": "Merged",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "4029:14:57",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_PRState_$12262",
                        "typeString": "enum PandoRepository.PRState"
                      }
                    },
                    "src": "4018:25:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_PRState_$12262",
                      "typeString": "enum PandoRepository.PRState"
                    }
                  },
                  "id": 12597,
                  "nodeType": "ExpressionStatement",
                  "src": "4018:25:57"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 12599,
                          "name": "pr",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 12586,
                          "src": "4059:2:57",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_PR_$12275_storage_ptr",
                            "typeString": "struct PandoRepository.PR storage pointer"
                          }
                        },
                        "id": 12600,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "ref",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 12272,
                        "src": "4059:6:57",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_storage",
                          "typeString": "string storage ref"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 12601,
                          "name": "pr",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 12586,
                          "src": "4067:2:57",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_PR_$12275_storage_ptr",
                            "typeString": "struct PandoRepository.PR storage pointer"
                          }
                        },
                        "id": 12602,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "hash",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 12274,
                        "src": "4067:7:57",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_storage",
                          "typeString": "string storage ref"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_storage",
                          "typeString": "string storage ref"
                        },
                        {
                          "typeIdentifier": "t_string_storage",
                          "typeString": "string storage ref"
                        }
                      ],
                      "id": 12598,
                      "name": "_push",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12504,
                      "src": "4053:5:57",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (string memory,string memory)"
                      }
                    },
                    "id": 12603,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4053:22:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 12604,
                  "nodeType": "ExpressionStatement",
                  "src": "4053:22:57"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 12606,
                        "name": "_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12582,
                        "src": "4099:3:57",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 12605,
                      "name": "MergePR",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12313,
                      "src": "4091:7:57",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$",
                        "typeString": "function (uint256)"
                      }
                    },
                    "id": 12607,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4091:12:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 12608,
                  "nodeType": "EmitStatement",
                  "src": "4086:17:57"
                }
              ]
            },
            "documentation": null,
            "id": 12610,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "_mergePR",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 12583,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12582,
                  "name": "_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 12610,
                  "src": "3951:11:57",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 12581,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3951:7:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3950:13:57"
            },
            "payable": false,
            "returnParameters": {
              "id": 12584,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3973:0:57"
            },
            "scope": 12655,
            "src": "3933:177:57",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 12632,
              "nodeType": "Block",
              "src": "4157:108:57",
              "statements": [
                {
                  "assignments": [
                    12616
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 12616,
                      "name": "pr",
                      "nodeType": "VariableDeclaration",
                      "scope": 12633,
                      "src": "4167:13:57",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_PR_$12275_storage_ptr",
                        "typeString": "struct PandoRepository.PR"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 12615,
                        "name": "PR",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 12275,
                        "src": "4167:2:57",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_PR_$12275_storage_ptr",
                          "typeString": "struct PandoRepository.PR"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 12620,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 12617,
                      "name": "PRs",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12287,
                      "src": "4183:3:57",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_PR_$12275_storage_$",
                        "typeString": "mapping(uint256 => struct PandoRepository.PR storage ref)"
                      }
                    },
                    "id": 12619,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 12618,
                      "name": "_id",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12612,
                      "src": "4187:3:57",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "4183:8:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_PR_$12275_storage",
                      "typeString": "struct PandoRepository.PR storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4167:24:57"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 12626,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 12621,
                        "name": "pr",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12616,
                        "src": "4202:2:57",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_PR_$12275_storage_ptr",
                          "typeString": "struct PandoRepository.PR storage pointer"
                        }
                      },
                      "id": 12623,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "state",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 12264,
                      "src": "4202:8:57",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_PRState_$12262",
                        "typeString": "enum PandoRepository.PRState"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 12624,
                        "name": "PRState",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12262,
                        "src": "4213:7:57",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_enum$_PRState_$12262_$",
                          "typeString": "type(enum PandoRepository.PRState)"
                        }
                      },
                      "id": 12625,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberName": "Rejected",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "4213:16:57",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_PRState_$12262",
                        "typeString": "enum PandoRepository.PRState"
                      }
                    },
                    "src": "4202:27:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_PRState_$12262",
                      "typeString": "enum PandoRepository.PRState"
                    }
                  },
                  "id": 12627,
                  "nodeType": "ExpressionStatement",
                  "src": "4202:27:57"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 12629,
                        "name": "_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12612,
                        "src": "4254:3:57",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 12628,
                      "name": "RejectPR",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12317,
                      "src": "4245:8:57",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$",
                        "typeString": "function (uint256)"
                      }
                    },
                    "id": 12630,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4245:13:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 12631,
                  "nodeType": "EmitStatement",
                  "src": "4240:18:57"
                }
              ]
            },
            "documentation": null,
            "id": 12633,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "_rejectPR",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 12613,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12612,
                  "name": "_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 12633,
                  "src": "4135:11:57",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 12611,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4135:7:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4134:13:57"
            },
            "payable": false,
            "returnParameters": {
              "id": 12614,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4157:0:57"
            },
            "scope": 12655,
            "src": "4116:149:57",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 12653,
              "nodeType": "Block",
              "src": "4344:120:57",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 12642,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 12640,
                      "name": "name",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12277,
                      "src": "4354:4:57",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_storage",
                        "typeString": "string storage ref"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 12641,
                      "name": "_name",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12635,
                      "src": "4361:5:57",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_memory_ptr",
                        "typeString": "string memory"
                      }
                    },
                    "src": "4354:12:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage",
                      "typeString": "string storage ref"
                    }
                  },
                  "id": 12643,
                  "nodeType": "ExpressionStatement",
                  "src": "4354:12:57"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 12646,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 12644,
                      "name": "description",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12279,
                      "src": "4376:11:57",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_storage",
                        "typeString": "string storage ref"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 12645,
                      "name": "_description",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12637,
                      "src": "4390:12:57",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_memory_ptr",
                        "typeString": "string memory"
                      }
                    },
                    "src": "4376:26:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage",
                      "typeString": "string storage ref"
                    }
                  },
                  "id": 12647,
                  "nodeType": "ExpressionStatement",
                  "src": "4376:26:57"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 12649,
                        "name": "_name",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12635,
                        "src": "4437:5:57",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 12650,
                        "name": "_description",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12637,
                        "src": "4444:12:57",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        },
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      ],
                      "id": 12648,
                      "name": "UpdateInformations",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12323,
                      "src": "4418:18:57",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (string memory,string memory)"
                      }
                    },
                    "id": 12651,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4418:39:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 12652,
                  "nodeType": "EmitStatement",
                  "src": "4413:44:57"
                }
              ]
            },
            "documentation": null,
            "id": 12654,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "_updateInformations",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 12638,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12635,
                  "name": "_name",
                  "nodeType": "VariableDeclaration",
                  "scope": 12654,
                  "src": "4300:12:57",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 12634,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "4300:6:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12637,
                  "name": "_description",
                  "nodeType": "VariableDeclaration",
                  "scope": 12654,
                  "src": "4314:19:57",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 12636,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "4314:6:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4299:35:57"
            },
            "payable": false,
            "returnParameters": {
              "id": 12639,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4344:0:57"
            },
            "scope": 12655,
            "src": "4271:193:57",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          }
        ],
        "scope": 12656,
        "src": "112:4356:57"
      }
    ],
    "src": "0:4469:57"
  },
  "legacyAST": {
    "absolutePath": "@pando/repository/contracts/PandoRepository.sol",
    "exportedSymbols": {
      "PandoRepository": [
        12655
      ]
    },
    "id": 12656,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 12231,
        "literals": [
          "solidity",
          "^",
          "0.4",
          ".24"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:24:57"
      },
      {
        "id": 12232,
        "literals": [
          "experimental",
          "ABIEncoderV2"
        ],
        "nodeType": "PragmaDirective",
        "src": "25:33:57"
      },
      {
        "absolutePath": "@aragon/os/contracts/apps/AragonApp.sol",
        "file": "@aragon/os/contracts/apps/AragonApp.sol",
        "id": 12233,
        "nodeType": "ImportDirective",
        "scope": 12656,
        "sourceUnit": 8476,
        "src": "60:49:57",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 12234,
              "name": "AragonApp",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 8475,
              "src": "140:9:57",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_AragonApp_$8475",
                "typeString": "contract AragonApp"
              }
            },
            "id": 12235,
            "nodeType": "InheritanceSpecifier",
            "src": "140:9:57"
          }
        ],
        "contractDependencies": [
          7585,
          8347,
          8475,
          8488,
          8621,
          8663,
          8761,
          8789,
          8822,
          8869,
          9066,
          9476,
          9503,
          10769
        ],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 12655,
        "linearizedBaseContracts": [
          12655,
          8475,
          7585,
          9476,
          10769,
          9503,
          9066,
          8789,
          8621,
          8663,
          8488,
          8822,
          8761,
          8869,
          8347
        ],
        "name": "PandoRepository",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": true,
            "id": 12240,
            "name": "PUSH_ROLE",
            "nodeType": "VariableDeclaration",
            "scope": 12655,
            "src": "156:58:57",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
            },
            "typeName": {
              "id": 12236,
              "name": "bytes32",
              "nodeType": "ElementaryTypeName",
              "src": "156:7:57",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
              }
            },
            "value": {
              "argumentTypes": null,
              "arguments": [
                {
                  "argumentTypes": null,
                  "hexValue": "505553485f524f4c45",
                  "id": 12238,
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": true,
                  "kind": "string",
                  "lValueRequested": false,
                  "nodeType": "Literal",
                  "src": "202:11:57",
                  "subdenomination": null,
                  "typeDescriptions": {
                    "typeIdentifier": "t_stringliteral_58970290a6ca792fb53c5182a15b439b85baee6678bad095c42164f45a6ff17b",
                    "typeString": "literal_string \"PUSH_ROLE\""
                  },
                  "value": "PUSH_ROLE"
                }
              ],
              "expression": {
                "argumentTypes": [
                  {
                    "typeIdentifier": "t_stringliteral_58970290a6ca792fb53c5182a15b439b85baee6678bad095c42164f45a6ff17b",
                    "typeString": "literal_string \"PUSH_ROLE\""
                  }
                ],
                "id": 12237,
                "name": "keccak256",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 12664,
                "src": "192:9:57",
                "typeDescriptions": {
                  "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                  "typeString": "function () pure returns (bytes32)"
                }
              },
              "id": 12239,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "functionCall",
              "lValueRequested": false,
              "names": [],
              "nodeType": "FunctionCall",
              "src": "192:22:57",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
              }
            },
            "visibility": "public"
          },
          {
            "constant": true,
            "id": 12245,
            "name": "OPEN_PR_ROLE",
            "nodeType": "VariableDeclaration",
            "scope": 12655,
            "src": "220:64:57",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
            },
            "typeName": {
              "id": 12241,
              "name": "bytes32",
              "nodeType": "ElementaryTypeName",
              "src": "220:7:57",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
              }
            },
            "value": {
              "argumentTypes": null,
              "arguments": [
                {
                  "argumentTypes": null,
                  "hexValue": "4f50454e5f50525f524f4c45",
                  "id": 12243,
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": true,
                  "kind": "string",
                  "lValueRequested": false,
                  "nodeType": "Literal",
                  "src": "269:14:57",
                  "subdenomination": null,
                  "typeDescriptions": {
                    "typeIdentifier": "t_stringliteral_29fbc03e9150fd66074be13a8892e8a2d3271dee1aca2e4214db83d61e171498",
                    "typeString": "literal_string \"OPEN_PR_ROLE\""
                  },
                  "value": "OPEN_PR_ROLE"
                }
              ],
              "expression": {
                "argumentTypes": [
                  {
                    "typeIdentifier": "t_stringliteral_29fbc03e9150fd66074be13a8892e8a2d3271dee1aca2e4214db83d61e171498",
                    "typeString": "literal_string \"OPEN_PR_ROLE\""
                  }
                ],
                "id": 12242,
                "name": "keccak256",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 12664,
                "src": "259:9:57",
                "typeDescriptions": {
                  "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                  "typeString": "function () pure returns (bytes32)"
                }
              },
              "id": 12244,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "functionCall",
              "lValueRequested": false,
              "names": [],
              "nodeType": "FunctionCall",
              "src": "259:25:57",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
              }
            },
            "visibility": "public"
          },
          {
            "constant": true,
            "id": 12250,
            "name": "SORT_PR_ROLE",
            "nodeType": "VariableDeclaration",
            "scope": 12655,
            "src": "290:64:57",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
            },
            "typeName": {
              "id": 12246,
              "name": "bytes32",
              "nodeType": "ElementaryTypeName",
              "src": "290:7:57",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
              }
            },
            "value": {
              "argumentTypes": null,
              "arguments": [
                {
                  "argumentTypes": null,
                  "hexValue": "534f52545f50525f524f4c45",
                  "id": 12248,
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": true,
                  "kind": "string",
                  "lValueRequested": false,
                  "nodeType": "Literal",
                  "src": "339:14:57",
                  "subdenomination": null,
                  "typeDescriptions": {
                    "typeIdentifier": "t_stringliteral_8d92eec80164b74311f7ed5f4aca6701af1b4f36693883bc6c458abccf0c3651",
                    "typeString": "literal_string \"SORT_PR_ROLE\""
                  },
                  "value": "SORT_PR_ROLE"
                }
              ],
              "expression": {
                "argumentTypes": [
                  {
                    "typeIdentifier": "t_stringliteral_8d92eec80164b74311f7ed5f4aca6701af1b4f36693883bc6c458abccf0c3651",
                    "typeString": "literal_string \"SORT_PR_ROLE\""
                  }
                ],
                "id": 12247,
                "name": "keccak256",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 12664,
                "src": "329:9:57",
                "typeDescriptions": {
                  "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                  "typeString": "function () pure returns (bytes32)"
                }
              },
              "id": 12249,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "functionCall",
              "lValueRequested": false,
              "names": [],
              "nodeType": "FunctionCall",
              "src": "329:25:57",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
              }
            },
            "visibility": "public"
          },
          {
            "constant": true,
            "id": 12255,
            "name": "UPDATE_INFORMATIONS_ROLE",
            "nodeType": "VariableDeclaration",
            "scope": 12655,
            "src": "360:88:57",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
            },
            "typeName": {
              "id": 12251,
              "name": "bytes32",
              "nodeType": "ElementaryTypeName",
              "src": "360:7:57",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
              }
            },
            "value": {
              "argumentTypes": null,
              "arguments": [
                {
                  "argumentTypes": null,
                  "hexValue": "5550444154455f494e464f524d4154494f4e535f524f4c45",
                  "id": 12253,
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": true,
                  "kind": "string",
                  "lValueRequested": false,
                  "nodeType": "Literal",
                  "src": "421:26:57",
                  "subdenomination": null,
                  "typeDescriptions": {
                    "typeIdentifier": "t_stringliteral_74a223597378f808299a6300cf698787414684be97b685703f32fb47bea1002c",
                    "typeString": "literal_string \"UPDATE_INFORMATIONS_ROLE\""
                  },
                  "value": "UPDATE_INFORMATIONS_ROLE"
                }
              ],
              "expression": {
                "argumentTypes": [
                  {
                    "typeIdentifier": "t_stringliteral_74a223597378f808299a6300cf698787414684be97b685703f32fb47bea1002c",
                    "typeString": "literal_string \"UPDATE_INFORMATIONS_ROLE\""
                  }
                ],
                "id": 12252,
                "name": "keccak256",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 12664,
                "src": "411:9:57",
                "typeDescriptions": {
                  "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                  "typeString": "function () pure returns (bytes32)"
                }
              },
              "id": 12254,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "functionCall",
              "lValueRequested": false,
              "names": [],
              "nodeType": "FunctionCall",
              "src": "411:37:57",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
              }
            },
            "visibility": "public"
          },
          {
            "constant": true,
            "id": 12258,
            "name": "ERROR_REPO_CANNOT_SORT_PR",
            "nodeType": "VariableDeclaration",
            "scope": 12655,
            "src": "455:73:57",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_memory",
              "typeString": "string"
            },
            "typeName": {
              "id": 12256,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "455:6:57",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "5245504f5f43414e4e4f545f534f52545f5052",
              "id": 12257,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "507:21:57",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_e415362e0ce0a3f23158d66372aa9723a10236a52d2e4ebdb7ef95051e035cfb",
                "typeString": "literal_string \"REPO_CANNOT_SORT_PR\""
              },
              "value": "REPO_CANNOT_SORT_PR"
            },
            "visibility": "private"
          },
          {
            "canonicalName": "PandoRepository.PRState",
            "id": 12262,
            "members": [
              {
                "id": 12259,
                "name": "Pending",
                "nodeType": "EnumValue",
                "src": "550:7:57"
              },
              {
                "id": 12260,
                "name": "Merged",
                "nodeType": "EnumValue",
                "src": "559:6:57"
              },
              {
                "id": 12261,
                "name": "Rejected",
                "nodeType": "EnumValue",
                "src": "567:8:57"
              }
            ],
            "name": "PRState",
            "nodeType": "EnumDefinition",
            "src": "535:42:57"
          },
          {
            "canonicalName": "PandoRepository.PR",
            "id": 12275,
            "members": [
              {
                "constant": false,
                "id": 12264,
                "name": "state",
                "nodeType": "VariableDeclaration",
                "scope": 12275,
                "src": "603:13:57",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_enum$_PRState_$12262",
                  "typeString": "enum PandoRepository.PRState"
                },
                "typeName": {
                  "contractScope": null,
                  "id": 12263,
                  "name": "PRState",
                  "nodeType": "UserDefinedTypeName",
                  "referencedDeclaration": 12262,
                  "src": "603:7:57",
                  "typeDescriptions": {
                    "typeIdentifier": "t_enum$_PRState_$12262",
                    "typeString": "enum PandoRepository.PRState"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 12266,
                "name": "author",
                "nodeType": "VariableDeclaration",
                "scope": 12275,
                "src": "626:14:57",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 12265,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "626:7:57",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 12268,
                "name": "title",
                "nodeType": "VariableDeclaration",
                "scope": 12275,
                "src": "650:13:57",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_string_storage_ptr",
                  "typeString": "string"
                },
                "typeName": {
                  "id": 12267,
                  "name": "string",
                  "nodeType": "ElementaryTypeName",
                  "src": "650:6:57",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_storage_ptr",
                    "typeString": "string"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 12270,
                "name": "description",
                "nodeType": "VariableDeclaration",
                "scope": 12275,
                "src": "673:19:57",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_string_storage_ptr",
                  "typeString": "string"
                },
                "typeName": {
                  "id": 12269,
                  "name": "string",
                  "nodeType": "ElementaryTypeName",
                  "src": "673:6:57",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_storage_ptr",
                    "typeString": "string"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 12272,
                "name": "ref",
                "nodeType": "VariableDeclaration",
                "scope": 12275,
                "src": "702:11:57",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_string_storage_ptr",
                  "typeString": "string"
                },
                "typeName": {
                  "id": 12271,
                  "name": "string",
                  "nodeType": "ElementaryTypeName",
                  "src": "702:6:57",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_storage_ptr",
                    "typeString": "string"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 12274,
                "name": "hash",
                "nodeType": "VariableDeclaration",
                "scope": 12275,
                "src": "723:12:57",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_string_storage_ptr",
                  "typeString": "string"
                },
                "typeName": {
                  "id": 12273,
                  "name": "string",
                  "nodeType": "ElementaryTypeName",
                  "src": "723:6:57",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_storage_ptr",
                    "typeString": "string"
                  }
                },
                "value": null,
                "visibility": "internal"
              }
            ],
            "name": "PR",
            "nodeType": "StructDefinition",
            "scope": 12655,
            "src": "583:159:57",
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 12277,
            "name": "name",
            "nodeType": "VariableDeclaration",
            "scope": 12655,
            "src": "748:18:57",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_storage",
              "typeString": "string"
            },
            "typeName": {
              "id": 12276,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "748:6:57",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 12279,
            "name": "description",
            "nodeType": "VariableDeclaration",
            "scope": 12655,
            "src": "772:25:57",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_storage",
              "typeString": "string"
            },
            "typeName": {
              "id": 12278,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "772:6:57",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 12283,
            "name": "refs",
            "nodeType": "VariableDeclaration",
            "scope": 12655,
            "src": "803:31:57",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_string_memory_$_t_string_storage_$",
              "typeString": "mapping(string => string)"
            },
            "typeName": {
              "id": 12282,
              "keyType": {
                "id": 12280,
                "name": "string",
                "nodeType": "ElementaryTypeName",
                "src": "812:6:57",
                "typeDescriptions": {
                  "typeIdentifier": "t_string_storage_ptr",
                  "typeString": "string"
                }
              },
              "nodeType": "Mapping",
              "src": "803:26:57",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_string_memory_$_t_string_storage_$",
                "typeString": "mapping(string => string)"
              },
              "valueType": {
                "id": 12281,
                "name": "string",
                "nodeType": "ElementaryTypeName",
                "src": "822:6:57",
                "typeDescriptions": {
                  "typeIdentifier": "t_string_storage_ptr",
                  "typeString": "string"
                }
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 12287,
            "name": "PRs",
            "nodeType": "VariableDeclaration",
            "scope": 12655,
            "src": "841:33:57",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_PR_$12275_storage_$",
              "typeString": "mapping(uint256 => struct PandoRepository.PR)"
            },
            "typeName": {
              "id": 12286,
              "keyType": {
                "id": 12284,
                "name": "uint256",
                "nodeType": "ElementaryTypeName",
                "src": "849:7:57",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                }
              },
              "nodeType": "Mapping",
              "src": "841:22:57",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_PR_$12275_storage_$",
                "typeString": "mapping(uint256 => struct PandoRepository.PR)"
              },
              "valueType": {
                "contractScope": null,
                "id": 12285,
                "name": "PR",
                "nodeType": "UserDefinedTypeName",
                "referencedDeclaration": 12275,
                "src": "860:2:57",
                "typeDescriptions": {
                  "typeIdentifier": "t_struct$_PR_$12275_storage_ptr",
                  "typeString": "struct PandoRepository.PR"
                }
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 12289,
            "name": "PRsLength",
            "nodeType": "VariableDeclaration",
            "scope": 12655,
            "src": "880:24:57",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 12288,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "880:7:57",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 12295,
            "name": "UpdateRef",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 12294,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12291,
                  "indexed": false,
                  "name": "ref",
                  "nodeType": "VariableDeclaration",
                  "scope": 12295,
                  "src": "927:10:57",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 12290,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "927:6:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12293,
                  "indexed": false,
                  "name": "hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 12295,
                  "src": "939:11:57",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 12292,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "939:6:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "926:25:57"
            },
            "src": "911:41:57"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 12309,
            "name": "OpenPR",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 12308,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12297,
                  "indexed": true,
                  "name": "id",
                  "nodeType": "VariableDeclaration",
                  "scope": 12309,
                  "src": "970:18:57",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 12296,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "970:7:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12299,
                  "indexed": false,
                  "name": "author",
                  "nodeType": "VariableDeclaration",
                  "scope": 12309,
                  "src": "990:14:57",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 12298,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "990:7:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12301,
                  "indexed": false,
                  "name": "title",
                  "nodeType": "VariableDeclaration",
                  "scope": 12309,
                  "src": "1006:12:57",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 12300,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "1006:6:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12303,
                  "indexed": false,
                  "name": "description",
                  "nodeType": "VariableDeclaration",
                  "scope": 12309,
                  "src": "1020:18:57",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 12302,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "1020:6:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12305,
                  "indexed": false,
                  "name": "ref",
                  "nodeType": "VariableDeclaration",
                  "scope": 12309,
                  "src": "1040:10:57",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 12304,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "1040:6:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12307,
                  "indexed": false,
                  "name": "hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 12309,
                  "src": "1052:11:57",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 12306,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "1052:6:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "969:95:57"
            },
            "src": "957:108:57"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 12313,
            "name": "MergePR",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 12312,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12311,
                  "indexed": true,
                  "name": "id",
                  "nodeType": "VariableDeclaration",
                  "scope": 12313,
                  "src": "1084:18:57",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 12310,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1084:7:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1083:20:57"
            },
            "src": "1070:34:57"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 12317,
            "name": "RejectPR",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 12316,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12315,
                  "indexed": true,
                  "name": "id",
                  "nodeType": "VariableDeclaration",
                  "scope": 12317,
                  "src": "1124:18:57",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 12314,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1124:7:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1123:20:57"
            },
            "src": "1109:35:57"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 12323,
            "name": "UpdateInformations",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 12322,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12319,
                  "indexed": false,
                  "name": "name",
                  "nodeType": "VariableDeclaration",
                  "scope": 12323,
                  "src": "1174:11:57",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 12318,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "1174:6:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12321,
                  "indexed": false,
                  "name": "description",
                  "nodeType": "VariableDeclaration",
                  "scope": 12323,
                  "src": "1187:18:57",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 12320,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "1187:6:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1173:33:57"
            },
            "src": "1149:58:57"
          },
          {
            "body": {
              "id": 12340,
              "nodeType": "Block",
              "src": "1324:81:57",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 12332,
                      "name": "initialized",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8746,
                      "src": "1334:11:57",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$",
                        "typeString": "function ()"
                      }
                    },
                    "id": 12333,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1334:13:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 12334,
                  "nodeType": "ExpressionStatement",
                  "src": "1334:13:57"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 12336,
                        "name": "_name",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12325,
                        "src": "1378:5:57",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 12337,
                        "name": "_description",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12327,
                        "src": "1385:12:57",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        },
                        {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        }
                      ],
                      "id": 12335,
                      "name": "_updateInformations",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12654,
                      "src": "1358:19:57",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (string memory,string memory)"
                      }
                    },
                    "id": 12338,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1358:40:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 12339,
                  "nodeType": "ExpressionStatement",
                  "src": "1358:40:57"
                }
              ]
            },
            "documentation": "*** external functions ****",
            "id": 12341,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 12330,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 12329,
                  "name": "onlyInit",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 8693,
                  "src": "1315:8:57",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "1315:8:57"
              }
            ],
            "name": "initialize",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 12328,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12325,
                  "name": "_name",
                  "nodeType": "VariableDeclaration",
                  "scope": 12341,
                  "src": "1271:12:57",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_calldata_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 12324,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "1271:6:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12327,
                  "name": "_description",
                  "nodeType": "VariableDeclaration",
                  "scope": 12341,
                  "src": "1285:19:57",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_calldata_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 12326,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "1285:6:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1270:35:57"
            },
            "payable": false,
            "returnParameters": {
              "id": 12331,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1324:0:57"
            },
            "scope": 12655,
            "src": "1251:154:57",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 12356,
              "nodeType": "Block",
              "src": "1622:35:57",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 12352,
                        "name": "_ref",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12343,
                        "src": "1638:4:57",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 12353,
                        "name": "_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12345,
                        "src": "1644:5:57",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        },
                        {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        }
                      ],
                      "id": 12351,
                      "name": "_push",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12504,
                      "src": "1632:5:57",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (string memory,string memory)"
                      }
                    },
                    "id": 12354,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1632:18:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 12355,
                  "nodeType": "ExpressionStatement",
                  "src": "1632:18:57"
                }
              ]
            },
            "documentation": "@notice Push `_hash` to `_ref`\n@param _ref Reference to push to\n@param _hash CID of the git-ipld commit to push",
            "id": 12357,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 12348,
                    "name": "PUSH_ROLE",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 12240,
                    "src": "1611:9:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 12349,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 12347,
                  "name": "auth",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 8387,
                  "src": "1606:4:57",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$",
                    "typeString": "modifier (bytes32)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "1606:15:57"
              }
            ],
            "name": "push",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 12346,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12343,
                  "name": "_ref",
                  "nodeType": "VariableDeclaration",
                  "scope": 12357,
                  "src": "1570:11:57",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_calldata_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 12342,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "1570:6:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12345,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 12357,
                  "src": "1583:12:57",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_calldata_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 12344,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "1583:6:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1569:27:57"
            },
            "payable": false,
            "returnParameters": {
              "id": 12350,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1622:0:57"
            },
            "scope": 12655,
            "src": "1556:101:57",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 12380,
              "nodeType": "Block",
              "src": "1995:71:57",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 12372,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 12670,
                          "src": "2013:3:57",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 12373,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "2013:10:57",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 12374,
                        "name": "_title",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12359,
                        "src": "2025:6:57",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 12375,
                        "name": "_description",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12361,
                        "src": "2033:12:57",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 12376,
                        "name": "_ref",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12363,
                        "src": "2047:4:57",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 12377,
                        "name": "_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12365,
                        "src": "2053:5:57",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        },
                        {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        },
                        {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        },
                        {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        }
                      ],
                      "id": 12371,
                      "name": "_openPR",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12580,
                      "src": "2005:7:57",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (address,string memory,string memory,string memory,string memory)"
                      }
                    },
                    "id": 12378,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2005:54:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 12379,
                  "nodeType": "ExpressionStatement",
                  "src": "2005:54:57"
                }
              ]
            },
            "documentation": "@notice Open PR '`_title`'\n@param _title Title of the PR\n@param _description Description of the PR\n@param _ref Reference to push to\n@param _hash CID of the git-ipld commit to push",
            "id": 12381,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 12368,
                    "name": "OPEN_PR_ROLE",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 12245,
                    "src": "1981:12:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 12369,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 12367,
                  "name": "auth",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 8387,
                  "src": "1976:4:57",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$",
                    "typeString": "modifier (bytes32)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "1976:18:57"
              }
            ],
            "name": "openPR",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 12366,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12359,
                  "name": "_title",
                  "nodeType": "VariableDeclaration",
                  "scope": 12381,
                  "src": "1904:13:57",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_calldata_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 12358,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "1904:6:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12361,
                  "name": "_description",
                  "nodeType": "VariableDeclaration",
                  "scope": 12381,
                  "src": "1919:19:57",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_calldata_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 12360,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "1919:6:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12363,
                  "name": "_ref",
                  "nodeType": "VariableDeclaration",
                  "scope": 12381,
                  "src": "1940:11:57",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_calldata_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 12362,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "1940:6:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12365,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 12381,
                  "src": "1953:12:57",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_calldata_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 12364,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "1953:6:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1903:63:57"
            },
            "payable": false,
            "returnParameters": {
              "id": 12370,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1995:0:57"
            },
            "scope": 12655,
            "src": "1888:178:57",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 12400,
              "nodeType": "Block",
              "src": "2205:90:57",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 12391,
                            "name": "_id",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 12383,
                            "src": "2233:3:57",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 12390,
                          "name": "canSortPR",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 12485,
                          "src": "2223:9:57",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$",
                            "typeString": "function (uint256) view returns (bool)"
                          }
                        },
                        "id": 12392,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2223:14:57",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 12393,
                        "name": "ERROR_REPO_CANNOT_SORT_PR",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12258,
                        "src": "2239:25:57",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory",
                          "typeString": "string memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_string_memory",
                          "typeString": "string memory"
                        }
                      ],
                      "id": 12389,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        12673,
                        12674
                      ],
                      "referencedDeclaration": 12674,
                      "src": "2215:7:57",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 12394,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2215:50:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 12395,
                  "nodeType": "ExpressionStatement",
                  "src": "2215:50:57"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 12397,
                        "name": "_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12383,
                        "src": "2284:3:57",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 12396,
                      "name": "_mergePR",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12610,
                      "src": "2275:8:57",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$",
                        "typeString": "function (uint256)"
                      }
                    },
                    "id": 12398,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2275:13:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 12399,
                  "nodeType": "ExpressionStatement",
                  "src": "2275:13:57"
                }
              ]
            },
            "documentation": "@notice Merge PR #`_id`\n@param _id ID of the PR",
            "id": 12401,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 12386,
                    "name": "SORT_PR_ROLE",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 12250,
                    "src": "2191:12:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 12387,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 12385,
                  "name": "auth",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 8387,
                  "src": "2186:4:57",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$",
                    "typeString": "modifier (bytes32)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "2186:18:57"
              }
            ],
            "name": "mergePR",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 12384,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12383,
                  "name": "_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 12401,
                  "src": "2164:11:57",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 12382,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2164:7:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2163:13:57"
            },
            "payable": false,
            "returnParameters": {
              "id": 12388,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2205:0:57"
            },
            "scope": 12655,
            "src": "2147:148:57",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 12420,
              "nodeType": "Block",
              "src": "2436:91:57",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 12411,
                            "name": "_id",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 12403,
                            "src": "2464:3:57",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 12410,
                          "name": "canSortPR",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 12485,
                          "src": "2454:9:57",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$",
                            "typeString": "function (uint256) view returns (bool)"
                          }
                        },
                        "id": 12412,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2454:14:57",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 12413,
                        "name": "ERROR_REPO_CANNOT_SORT_PR",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12258,
                        "src": "2470:25:57",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory",
                          "typeString": "string memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_string_memory",
                          "typeString": "string memory"
                        }
                      ],
                      "id": 12409,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        12673,
                        12674
                      ],
                      "referencedDeclaration": 12674,
                      "src": "2446:7:57",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 12414,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2446:50:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 12415,
                  "nodeType": "ExpressionStatement",
                  "src": "2446:50:57"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 12417,
                        "name": "_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12403,
                        "src": "2516:3:57",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 12416,
                      "name": "_rejectPR",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12633,
                      "src": "2506:9:57",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$",
                        "typeString": "function (uint256)"
                      }
                    },
                    "id": 12418,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2506:14:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 12419,
                  "nodeType": "ExpressionStatement",
                  "src": "2506:14:57"
                }
              ]
            },
            "documentation": "@notice Reject PR #`_id`\n@param _id ID of the PR",
            "id": 12421,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 12406,
                    "name": "SORT_PR_ROLE",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 12250,
                    "src": "2422:12:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 12407,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 12405,
                  "name": "auth",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 8387,
                  "src": "2417:4:57",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$",
                    "typeString": "modifier (bytes32)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "2417:18:57"
              }
            ],
            "name": "rejectPR",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 12404,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12403,
                  "name": "_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 12421,
                  "src": "2395:11:57",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 12402,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2395:7:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2394:13:57"
            },
            "payable": false,
            "returnParameters": {
              "id": 12408,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2436:0:57"
            },
            "scope": 12655,
            "src": "2377:150:57",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 12436,
              "nodeType": "Block",
              "src": "2835:57:57",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 12432,
                        "name": "_name",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12423,
                        "src": "2865:5:57",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 12433,
                        "name": "_description",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12425,
                        "src": "2872:12:57",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        },
                        {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        }
                      ],
                      "id": 12431,
                      "name": "_updateInformations",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12654,
                      "src": "2845:19:57",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (string memory,string memory)"
                      }
                    },
                    "id": 12434,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2845:40:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 12435,
                  "nodeType": "ExpressionStatement",
                  "src": "2845:40:57"
                }
              ]
            },
            "documentation": "@notice Update repository name to '`_name`' and description to '`_description`'\n@param _name Name of the repository\n@param _description Description of the repository",
            "id": 12437,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 12428,
                    "name": "UPDATE_INFORMATIONS_ROLE",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 12255,
                    "src": "2809:24:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 12429,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 12427,
                  "name": "auth",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 8387,
                  "src": "2804:4:57",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$",
                    "typeString": "modifier (bytes32)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "2804:30:57"
              }
            ],
            "name": "updateInformations",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 12426,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12423,
                  "name": "_name",
                  "nodeType": "VariableDeclaration",
                  "scope": 12437,
                  "src": "2760:12:57",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_calldata_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 12422,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "2760:6:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12425,
                  "name": "_description",
                  "nodeType": "VariableDeclaration",
                  "scope": 12437,
                  "src": "2774:19:57",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_calldata_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 12424,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "2774:6:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2759:35:57"
            },
            "payable": false,
            "returnParameters": {
              "id": 12430,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2835:0:57"
            },
            "scope": 12655,
            "src": "2732:160:57",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 12450,
              "nodeType": "Block",
              "src": "2994:34:57",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 12448,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 12444,
                      "name": "hash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12442,
                      "src": "3004:4:57",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_memory_ptr",
                        "typeString": "string memory"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 12445,
                        "name": "refs",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12283,
                        "src": "3011:4:57",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_string_memory_$_t_string_storage_$",
                          "typeString": "mapping(string memory => string storage ref)"
                        }
                      },
                      "id": 12447,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 12446,
                        "name": "_ref",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12439,
                        "src": "3016:4:57",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "3011:10:57",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_storage",
                        "typeString": "string storage ref"
                      }
                    },
                    "src": "3004:17:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_memory_ptr",
                      "typeString": "string memory"
                    }
                  },
                  "id": 12449,
                  "nodeType": "ExpressionStatement",
                  "src": "3004:17:57"
                }
              ]
            },
            "documentation": "*** public functions ****",
            "id": 12451,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "ref",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 12440,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12439,
                  "name": "_ref",
                  "nodeType": "VariableDeclaration",
                  "scope": 12451,
                  "src": "2947:11:57",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 12438,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "2947:6:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2946:13:57"
            },
            "payable": false,
            "returnParameters": {
              "id": 12443,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12442,
                  "name": "hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 12451,
                  "src": "2981:11:57",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 12441,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "2981:6:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2980:13:57"
            },
            "scope": 12655,
            "src": "2934:94:57",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 12484,
              "nodeType": "Block",
              "src": "3093:197:57",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "id": 12464,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 12460,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "id": 12458,
                        "name": "_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12453,
                        "src": "3107:3:57",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "<",
                      "rightExpression": {
                        "argumentTypes": null,
                        "hexValue": "31",
                        "id": 12459,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3113:1:57",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_1_by_1",
                          "typeString": "int_const 1"
                        },
                        "value": "1"
                      },
                      "src": "3107:7:57",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "||",
                    "rightExpression": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 12463,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "id": 12461,
                        "name": "_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12453,
                        "src": "3118:3:57",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": ">",
                      "rightExpression": {
                        "argumentTypes": null,
                        "id": 12462,
                        "name": "PRsLength",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12289,
                        "src": "3124:9:57",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "3118:15:57",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "3107:26:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 12467,
                  "nodeType": "IfStatement",
                  "src": "3103:56:57",
                  "trueBody": {
                    "expression": {
                      "argumentTypes": null,
                      "hexValue": "66616c7365",
                      "id": 12465,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "bool",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "3154:5:57",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "value": "false"
                    },
                    "functionReturnParameters": 12457,
                    "id": 12466,
                    "nodeType": "Return",
                    "src": "3147:12:57"
                  }
                },
                {
                  "assignments": [
                    12469
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 12469,
                      "name": "pr",
                      "nodeType": "VariableDeclaration",
                      "scope": 12485,
                      "src": "3170:13:57",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_PR_$12275_storage_ptr",
                        "typeString": "struct PandoRepository.PR"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 12468,
                        "name": "PR",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 12275,
                        "src": "3170:2:57",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_PR_$12275_storage_ptr",
                          "typeString": "struct PandoRepository.PR"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 12473,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 12470,
                      "name": "PRs",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12287,
                      "src": "3186:3:57",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_PR_$12275_storage_$",
                        "typeString": "mapping(uint256 => struct PandoRepository.PR storage ref)"
                      }
                    },
                    "id": 12472,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 12471,
                      "name": "_id",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12453,
                      "src": "3190:3:57",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "3186:8:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_PR_$12275_storage",
                      "typeString": "struct PandoRepository.PR storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3170:24:57"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_enum$_PRState_$12262",
                      "typeString": "enum PandoRepository.PRState"
                    },
                    "id": 12478,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 12474,
                        "name": "pr",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12469,
                        "src": "3208:2:57",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_PR_$12275_storage_ptr",
                          "typeString": "struct PandoRepository.PR storage pointer"
                        }
                      },
                      "id": 12475,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "state",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 12264,
                      "src": "3208:8:57",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_PRState_$12262",
                        "typeString": "enum PandoRepository.PRState"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "!=",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 12476,
                        "name": "PRState",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12262,
                        "src": "3220:7:57",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_enum$_PRState_$12262_$",
                          "typeString": "type(enum PandoRepository.PRState)"
                        }
                      },
                      "id": 12477,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberName": "Pending",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "3220:15:57",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_PRState_$12262",
                        "typeString": "enum PandoRepository.PRState"
                      }
                    },
                    "src": "3208:27:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 12481,
                  "nodeType": "IfStatement",
                  "src": "3204:57:57",
                  "trueBody": {
                    "expression": {
                      "argumentTypes": null,
                      "hexValue": "66616c7365",
                      "id": 12479,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "bool",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "3256:5:57",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "value": "false"
                    },
                    "functionReturnParameters": 12457,
                    "id": 12480,
                    "nodeType": "Return",
                    "src": "3249:12:57"
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "hexValue": "74727565",
                    "id": 12482,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "bool",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "3279:4:57",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "value": "true"
                  },
                  "functionReturnParameters": 12457,
                  "id": 12483,
                  "nodeType": "Return",
                  "src": "3272:11:57"
                }
              ]
            },
            "documentation": null,
            "id": 12485,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "canSortPR",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 12454,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12453,
                  "name": "_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 12485,
                  "src": "3053:11:57",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 12452,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3053:7:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3052:13:57"
            },
            "payable": false,
            "returnParameters": {
              "id": 12457,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12456,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 12485,
                  "src": "3087:4:57",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 12455,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "3087:4:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3086:6:57"
            },
            "scope": 12655,
            "src": "3034:256:57",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 12503,
              "nodeType": "Block",
              "src": "3384:73:57",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 12496,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 12492,
                        "name": "refs",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12283,
                        "src": "3394:4:57",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_string_memory_$_t_string_storage_$",
                          "typeString": "mapping(string memory => string storage ref)"
                        }
                      },
                      "id": 12494,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 12493,
                        "name": "_ref",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12487,
                        "src": "3399:4:57",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "3394:10:57",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_storage",
                        "typeString": "string storage ref"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 12495,
                      "name": "_hash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12489,
                      "src": "3407:5:57",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_memory_ptr",
                        "typeString": "string memory"
                      }
                    },
                    "src": "3394:18:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage",
                      "typeString": "string storage ref"
                    }
                  },
                  "id": 12497,
                  "nodeType": "ExpressionStatement",
                  "src": "3394:18:57"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 12499,
                        "name": "_ref",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12487,
                        "src": "3438:4:57",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 12500,
                        "name": "_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12489,
                        "src": "3444:5:57",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        },
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      ],
                      "id": 12498,
                      "name": "UpdateRef",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12295,
                      "src": "3428:9:57",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (string memory,string memory)"
                      }
                    },
                    "id": 12501,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3428:22:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 12502,
                  "nodeType": "EmitStatement",
                  "src": "3423:27:57"
                }
              ]
            },
            "documentation": "*** private functions ****",
            "id": 12504,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "_push",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 12490,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12487,
                  "name": "_ref",
                  "nodeType": "VariableDeclaration",
                  "scope": 12504,
                  "src": "3348:11:57",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 12486,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "3348:6:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12489,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 12504,
                  "src": "3361:12:57",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 12488,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "3361:6:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3347:27:57"
            },
            "payable": false,
            "returnParameters": {
              "id": 12491,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3384:0:57"
            },
            "scope": 12655,
            "src": "3333:124:57",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 12579,
              "nodeType": "Block",
              "src": "3569:358:57",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 12521,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 12517,
                      "name": "PRsLength",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12289,
                      "src": "3579:9:57",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 12520,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "id": 12518,
                        "name": "PRsLength",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12289,
                        "src": "3591:9:57",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "+",
                      "rightExpression": {
                        "argumentTypes": null,
                        "hexValue": "31",
                        "id": 12519,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3603:1:57",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_1_by_1",
                          "typeString": "int_const 1"
                        },
                        "value": "1"
                      },
                      "src": "3591:13:57",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "3579:25:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 12522,
                  "nodeType": "ExpressionStatement",
                  "src": "3579:25:57"
                },
                {
                  "assignments": [
                    12524
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 12524,
                      "name": "id",
                      "nodeType": "VariableDeclaration",
                      "scope": 12580,
                      "src": "3614:10:57",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 12523,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "3614:7:57",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 12526,
                  "initialValue": {
                    "argumentTypes": null,
                    "id": 12525,
                    "name": "PRsLength",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 12289,
                    "src": "3627:9:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3614:22:57"
                },
                {
                  "assignments": [
                    12528
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 12528,
                      "name": "pr",
                      "nodeType": "VariableDeclaration",
                      "scope": 12580,
                      "src": "3647:13:57",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_PR_$12275_storage_ptr",
                        "typeString": "struct PandoRepository.PR"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 12527,
                        "name": "PR",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 12275,
                        "src": "3647:2:57",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_PR_$12275_storage_ptr",
                          "typeString": "struct PandoRepository.PR"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 12532,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 12529,
                      "name": "PRs",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12287,
                      "src": "3663:3:57",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_PR_$12275_storage_$",
                        "typeString": "mapping(uint256 => struct PandoRepository.PR storage ref)"
                      }
                    },
                    "id": 12531,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 12530,
                      "name": "id",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12524,
                      "src": "3667:2:57",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "3663:7:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_PR_$12275_storage",
                      "typeString": "struct PandoRepository.PR storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3647:23:57"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 12538,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 12533,
                        "name": "pr",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12528,
                        "src": "3681:2:57",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_PR_$12275_storage_ptr",
                          "typeString": "struct PandoRepository.PR storage pointer"
                        }
                      },
                      "id": 12535,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "state",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 12264,
                      "src": "3681:8:57",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_PRState_$12262",
                        "typeString": "enum PandoRepository.PRState"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 12536,
                        "name": "PRState",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12262,
                        "src": "3692:7:57",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_enum$_PRState_$12262_$",
                          "typeString": "type(enum PandoRepository.PRState)"
                        }
                      },
                      "id": 12537,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberName": "Pending",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "3692:15:57",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_PRState_$12262",
                        "typeString": "enum PandoRepository.PRState"
                      }
                    },
                    "src": "3681:26:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_PRState_$12262",
                      "typeString": "enum PandoRepository.PRState"
                    }
                  },
                  "id": 12539,
                  "nodeType": "ExpressionStatement",
                  "src": "3681:26:57"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 12544,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 12540,
                        "name": "pr",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12528,
                        "src": "3717:2:57",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_PR_$12275_storage_ptr",
                          "typeString": "struct PandoRepository.PR storage pointer"
                        }
                      },
                      "id": 12542,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "author",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 12266,
                      "src": "3717:9:57",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 12543,
                      "name": "_author",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12506,
                      "src": "3729:7:57",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "3717:19:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 12545,
                  "nodeType": "ExpressionStatement",
                  "src": "3717:19:57"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 12550,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 12546,
                        "name": "pr",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12528,
                        "src": "3746:2:57",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_PR_$12275_storage_ptr",
                          "typeString": "struct PandoRepository.PR storage pointer"
                        }
                      },
                      "id": 12548,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "title",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 12268,
                      "src": "3746:8:57",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_storage",
                        "typeString": "string storage ref"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 12549,
                      "name": "_title",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12508,
                      "src": "3757:6:57",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_memory_ptr",
                        "typeString": "string memory"
                      }
                    },
                    "src": "3746:17:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage",
                      "typeString": "string storage ref"
                    }
                  },
                  "id": 12551,
                  "nodeType": "ExpressionStatement",
                  "src": "3746:17:57"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 12556,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 12552,
                        "name": "pr",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12528,
                        "src": "3773:2:57",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_PR_$12275_storage_ptr",
                          "typeString": "struct PandoRepository.PR storage pointer"
                        }
                      },
                      "id": 12554,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "description",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 12270,
                      "src": "3773:14:57",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_storage",
                        "typeString": "string storage ref"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 12555,
                      "name": "_description",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12510,
                      "src": "3790:12:57",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_memory_ptr",
                        "typeString": "string memory"
                      }
                    },
                    "src": "3773:29:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage",
                      "typeString": "string storage ref"
                    }
                  },
                  "id": 12557,
                  "nodeType": "ExpressionStatement",
                  "src": "3773:29:57"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 12562,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 12558,
                        "name": "pr",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12528,
                        "src": "3812:2:57",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_PR_$12275_storage_ptr",
                          "typeString": "struct PandoRepository.PR storage pointer"
                        }
                      },
                      "id": 12560,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "ref",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 12272,
                      "src": "3812:6:57",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_storage",
                        "typeString": "string storage ref"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 12561,
                      "name": "_ref",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12512,
                      "src": "3821:4:57",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_memory_ptr",
                        "typeString": "string memory"
                      }
                    },
                    "src": "3812:13:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage",
                      "typeString": "string storage ref"
                    }
                  },
                  "id": 12563,
                  "nodeType": "ExpressionStatement",
                  "src": "3812:13:57"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 12568,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 12564,
                        "name": "pr",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12528,
                        "src": "3835:2:57",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_PR_$12275_storage_ptr",
                          "typeString": "struct PandoRepository.PR storage pointer"
                        }
                      },
                      "id": 12566,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "hash",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 12274,
                      "src": "3835:7:57",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_storage",
                        "typeString": "string storage ref"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 12567,
                      "name": "_hash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12514,
                      "src": "3845:5:57",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_memory_ptr",
                        "typeString": "string memory"
                      }
                    },
                    "src": "3835:15:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage",
                      "typeString": "string storage ref"
                    }
                  },
                  "id": 12569,
                  "nodeType": "ExpressionStatement",
                  "src": "3835:15:57"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 12571,
                        "name": "id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12524,
                        "src": "3873:2:57",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 12572,
                        "name": "_author",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12506,
                        "src": "3877:7:57",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 12573,
                        "name": "_title",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12508,
                        "src": "3886:6:57",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 12574,
                        "name": "_description",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12510,
                        "src": "3894:12:57",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 12575,
                        "name": "_ref",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12512,
                        "src": "3908:4:57",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 12576,
                        "name": "_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12514,
                        "src": "3914:5:57",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        },
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        },
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        },
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      ],
                      "id": 12570,
                      "name": "OpenPR",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12309,
                      "src": "3866:6:57",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_address_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (uint256,address,string memory,string memory,string memory,string memory)"
                      }
                    },
                    "id": 12577,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3866:54:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 12578,
                  "nodeType": "EmitStatement",
                  "src": "3861:59:57"
                }
              ]
            },
            "documentation": null,
            "id": 12580,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "_openPR",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 12515,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12506,
                  "name": "_author",
                  "nodeType": "VariableDeclaration",
                  "scope": 12580,
                  "src": "3480:15:57",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 12505,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "3480:7:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12508,
                  "name": "_title",
                  "nodeType": "VariableDeclaration",
                  "scope": 12580,
                  "src": "3497:13:57",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 12507,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "3497:6:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12510,
                  "name": "_description",
                  "nodeType": "VariableDeclaration",
                  "scope": 12580,
                  "src": "3512:19:57",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 12509,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "3512:6:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12512,
                  "name": "_ref",
                  "nodeType": "VariableDeclaration",
                  "scope": 12580,
                  "src": "3533:11:57",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 12511,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "3533:6:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12514,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 12580,
                  "src": "3546:12:57",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 12513,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "3546:6:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3479:80:57"
            },
            "payable": false,
            "returnParameters": {
              "id": 12516,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3569:0:57"
            },
            "scope": 12655,
            "src": "3463:464:57",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 12609,
              "nodeType": "Block",
              "src": "3973:137:57",
              "statements": [
                {
                  "assignments": [
                    12586
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 12586,
                      "name": "pr",
                      "nodeType": "VariableDeclaration",
                      "scope": 12610,
                      "src": "3983:13:57",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_PR_$12275_storage_ptr",
                        "typeString": "struct PandoRepository.PR"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 12585,
                        "name": "PR",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 12275,
                        "src": "3983:2:57",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_PR_$12275_storage_ptr",
                          "typeString": "struct PandoRepository.PR"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 12590,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 12587,
                      "name": "PRs",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12287,
                      "src": "3999:3:57",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_PR_$12275_storage_$",
                        "typeString": "mapping(uint256 => struct PandoRepository.PR storage ref)"
                      }
                    },
                    "id": 12589,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 12588,
                      "name": "_id",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12582,
                      "src": "4003:3:57",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "3999:8:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_PR_$12275_storage",
                      "typeString": "struct PandoRepository.PR storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3983:24:57"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 12596,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 12591,
                        "name": "pr",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12586,
                        "src": "4018:2:57",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_PR_$12275_storage_ptr",
                          "typeString": "struct PandoRepository.PR storage pointer"
                        }
                      },
                      "id": 12593,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "state",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 12264,
                      "src": "4018:8:57",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_PRState_$12262",
                        "typeString": "enum PandoRepository.PRState"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 12594,
                        "name": "PRState",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12262,
                        "src": "4029:7:57",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_enum$_PRState_$12262_$",
                          "typeString": "type(enum PandoRepository.PRState)"
                        }
                      },
                      "id": 12595,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberName": "Merged",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "4029:14:57",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_PRState_$12262",
                        "typeString": "enum PandoRepository.PRState"
                      }
                    },
                    "src": "4018:25:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_PRState_$12262",
                      "typeString": "enum PandoRepository.PRState"
                    }
                  },
                  "id": 12597,
                  "nodeType": "ExpressionStatement",
                  "src": "4018:25:57"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 12599,
                          "name": "pr",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 12586,
                          "src": "4059:2:57",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_PR_$12275_storage_ptr",
                            "typeString": "struct PandoRepository.PR storage pointer"
                          }
                        },
                        "id": 12600,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "ref",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 12272,
                        "src": "4059:6:57",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_storage",
                          "typeString": "string storage ref"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 12601,
                          "name": "pr",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 12586,
                          "src": "4067:2:57",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_PR_$12275_storage_ptr",
                            "typeString": "struct PandoRepository.PR storage pointer"
                          }
                        },
                        "id": 12602,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "hash",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 12274,
                        "src": "4067:7:57",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_storage",
                          "typeString": "string storage ref"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_storage",
                          "typeString": "string storage ref"
                        },
                        {
                          "typeIdentifier": "t_string_storage",
                          "typeString": "string storage ref"
                        }
                      ],
                      "id": 12598,
                      "name": "_push",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12504,
                      "src": "4053:5:57",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (string memory,string memory)"
                      }
                    },
                    "id": 12603,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4053:22:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 12604,
                  "nodeType": "ExpressionStatement",
                  "src": "4053:22:57"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 12606,
                        "name": "_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12582,
                        "src": "4099:3:57",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 12605,
                      "name": "MergePR",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12313,
                      "src": "4091:7:57",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$",
                        "typeString": "function (uint256)"
                      }
                    },
                    "id": 12607,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4091:12:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 12608,
                  "nodeType": "EmitStatement",
                  "src": "4086:17:57"
                }
              ]
            },
            "documentation": null,
            "id": 12610,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "_mergePR",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 12583,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12582,
                  "name": "_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 12610,
                  "src": "3951:11:57",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 12581,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3951:7:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3950:13:57"
            },
            "payable": false,
            "returnParameters": {
              "id": 12584,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3973:0:57"
            },
            "scope": 12655,
            "src": "3933:177:57",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 12632,
              "nodeType": "Block",
              "src": "4157:108:57",
              "statements": [
                {
                  "assignments": [
                    12616
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 12616,
                      "name": "pr",
                      "nodeType": "VariableDeclaration",
                      "scope": 12633,
                      "src": "4167:13:57",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_PR_$12275_storage_ptr",
                        "typeString": "struct PandoRepository.PR"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 12615,
                        "name": "PR",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 12275,
                        "src": "4167:2:57",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_PR_$12275_storage_ptr",
                          "typeString": "struct PandoRepository.PR"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 12620,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 12617,
                      "name": "PRs",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12287,
                      "src": "4183:3:57",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_PR_$12275_storage_$",
                        "typeString": "mapping(uint256 => struct PandoRepository.PR storage ref)"
                      }
                    },
                    "id": 12619,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 12618,
                      "name": "_id",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12612,
                      "src": "4187:3:57",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "4183:8:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_PR_$12275_storage",
                      "typeString": "struct PandoRepository.PR storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4167:24:57"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 12626,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 12621,
                        "name": "pr",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12616,
                        "src": "4202:2:57",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_PR_$12275_storage_ptr",
                          "typeString": "struct PandoRepository.PR storage pointer"
                        }
                      },
                      "id": 12623,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "state",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 12264,
                      "src": "4202:8:57",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_PRState_$12262",
                        "typeString": "enum PandoRepository.PRState"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 12624,
                        "name": "PRState",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12262,
                        "src": "4213:7:57",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_enum$_PRState_$12262_$",
                          "typeString": "type(enum PandoRepository.PRState)"
                        }
                      },
                      "id": 12625,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberName": "Rejected",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "4213:16:57",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_PRState_$12262",
                        "typeString": "enum PandoRepository.PRState"
                      }
                    },
                    "src": "4202:27:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_PRState_$12262",
                      "typeString": "enum PandoRepository.PRState"
                    }
                  },
                  "id": 12627,
                  "nodeType": "ExpressionStatement",
                  "src": "4202:27:57"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 12629,
                        "name": "_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12612,
                        "src": "4254:3:57",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 12628,
                      "name": "RejectPR",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12317,
                      "src": "4245:8:57",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$",
                        "typeString": "function (uint256)"
                      }
                    },
                    "id": 12630,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4245:13:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 12631,
                  "nodeType": "EmitStatement",
                  "src": "4240:18:57"
                }
              ]
            },
            "documentation": null,
            "id": 12633,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "_rejectPR",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 12613,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12612,
                  "name": "_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 12633,
                  "src": "4135:11:57",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 12611,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4135:7:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4134:13:57"
            },
            "payable": false,
            "returnParameters": {
              "id": 12614,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4157:0:57"
            },
            "scope": 12655,
            "src": "4116:149:57",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 12653,
              "nodeType": "Block",
              "src": "4344:120:57",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 12642,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 12640,
                      "name": "name",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12277,
                      "src": "4354:4:57",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_storage",
                        "typeString": "string storage ref"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 12641,
                      "name": "_name",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12635,
                      "src": "4361:5:57",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_memory_ptr",
                        "typeString": "string memory"
                      }
                    },
                    "src": "4354:12:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage",
                      "typeString": "string storage ref"
                    }
                  },
                  "id": 12643,
                  "nodeType": "ExpressionStatement",
                  "src": "4354:12:57"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 12646,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 12644,
                      "name": "description",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12279,
                      "src": "4376:11:57",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_storage",
                        "typeString": "string storage ref"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 12645,
                      "name": "_description",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12637,
                      "src": "4390:12:57",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_memory_ptr",
                        "typeString": "string memory"
                      }
                    },
                    "src": "4376:26:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage",
                      "typeString": "string storage ref"
                    }
                  },
                  "id": 12647,
                  "nodeType": "ExpressionStatement",
                  "src": "4376:26:57"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 12649,
                        "name": "_name",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12635,
                        "src": "4437:5:57",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 12650,
                        "name": "_description",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12637,
                        "src": "4444:12:57",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        },
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      ],
                      "id": 12648,
                      "name": "UpdateInformations",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12323,
                      "src": "4418:18:57",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (string memory,string memory)"
                      }
                    },
                    "id": 12651,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4418:39:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 12652,
                  "nodeType": "EmitStatement",
                  "src": "4413:44:57"
                }
              ]
            },
            "documentation": null,
            "id": 12654,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "_updateInformations",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 12638,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12635,
                  "name": "_name",
                  "nodeType": "VariableDeclaration",
                  "scope": 12654,
                  "src": "4300:12:57",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 12634,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "4300:6:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12637,
                  "name": "_description",
                  "nodeType": "VariableDeclaration",
                  "scope": 12654,
                  "src": "4314:19:57",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 12636,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "4314:6:57",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4299:35:57"
            },
            "payable": false,
            "returnParameters": {
              "id": 12639,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4344:0:57"
            },
            "scope": 12655,
            "src": "4271:193:57",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          }
        ],
        "scope": 12656,
        "src": "112:4356:57"
      }
    ],
    "src": "0:4469:57"
  },
  "compiler": {
    "name": "solc",
    "version": "0.4.24+commit.e67f0147.Emscripten.clang"
  },
  "networks": {},
  "schemaVersion": "3.0.1",
  "updatedAt": "2019-03-29T09:45:33.568Z",
  "devdoc": {
    "methods": {
      "allowRecoverability(address)": {
        "details": "By default deriving from AragonApp makes it recoverable",
        "params": {
          "token": "Token address that would be recovered"
        },
        "return": "bool whether the app allows the recovery"
      },
      "canPerform(address,bytes32,uint256[])": {
        "details": "Check whether an action can be performed by a sender for a particular role on this app",
        "params": {
          "_params": "Permission params for the role",
          "_role": "Role on this app",
          "_sender": "Sender of the call"
        },
        "return": "Boolean indicating whether the sender has the permissions to perform the action.        Always returns false if the app hasn't been initialized yet."
      },
      "getInitializationBlock()": {
        "return": "Block number in which the contract was initialized"
      },
      "getRecoveryVault()": {
        "details": "Get the recovery vault for the app",
        "return": "Recovery vault address for the app"
      },
      "hasInitialized()": {
        "return": "Whether the contract has been initialized by the time of the current block"
      },
      "mergePR(uint256)": {
        "params": {
          "_id": "ID of the PR"
        }
      },
      "openPR(string,string,string,string)": {
        "params": {
          "_description": "Description of the PR",
          "_hash": "CID of the git-ipld commit to push",
          "_ref": "Reference to push to",
          "_title": "Title of the PR"
        }
      },
      "push(string,string)": {
        "params": {
          "_hash": "CID of the git-ipld commit to push",
          "_ref": "Reference to push to"
        }
      },
      "rejectPR(uint256)": {
        "params": {
          "_id": "ID of the PR"
        }
      },
      "transferToVault(address)": {
        "params": {
          "_token": "Token balance to be sent to recovery vault."
        }
      },
      "updateInformations(string,string)": {
        "params": {
          "_description": "Description of the repository",
          "_name": "Name of the repository"
        }
      }
    }
  },
  "userdoc": {
    "methods": {
      "initialize(string,string)": {
        "notice": "*** external functions ****"
      },
      "mergePR(uint256)": {
        "notice": "Merge PR #`_id`"
      },
      "openPR(string,string,string,string)": {
        "notice": "Open PR '`_title`'"
      },
      "push(string,string)": {
        "notice": "Push `_hash` to `_ref`"
      },
      "ref(string)": {
        "notice": "*** public functions ****"
      },
      "rejectPR(uint256)": {
        "notice": "Reject PR #`_id`"
      },
      "transferToVault(address)": {
        "notice": "Send funds to recovery Vault. This contract should never receive funds,        but in case it does, this function allows one to recover them."
      },
      "updateInformations(string,string)": {
        "notice": "Update repository name to '`_name`' and description to '`_description`'"
      }
    }
  }
}