{
  "contractName": "Avatar",
  "abi": [
    {
      "constant": true,
      "inputs": [],
      "name": "orgName",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_action",
          "type": "address"
        },
        {
          "name": "_params",
          "type": "bytes32[]"
        }
      ],
      "name": "genericAction",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "nativeReputation",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_externalToken",
          "type": "address"
        },
        {
          "name": "_spender",
          "type": "address"
        },
        {
          "name": "_addedValue",
          "type": "uint256"
        }
      ],
      "name": "externalTokenIncreaseApproval",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "owner",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_externalToken",
          "type": "address"
        },
        {
          "name": "_from",
          "type": "address"
        },
        {
          "name": "_to",
          "type": "address"
        },
        {
          "name": "_value",
          "type": "uint256"
        }
      ],
      "name": "externalTokenTransferFrom",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_amountInWei",
          "type": "uint256"
        },
        {
          "name": "_to",
          "type": "address"
        }
      ],
      "name": "sendEther",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_externalToken",
          "type": "address"
        },
        {
          "name": "_spender",
          "type": "address"
        },
        {
          "name": "_subtractedValue",
          "type": "uint256"
        }
      ],
      "name": "externalTokenDecreaseApproval",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_externalToken",
          "type": "address"
        },
        {
          "name": "_to",
          "type": "address"
        },
        {
          "name": "_value",
          "type": "uint256"
        }
      ],
      "name": "externalTokenTransfer",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "nativeToken",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "transferOwnership",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "name": "_orgName",
          "type": "bytes32"
        },
        {
          "name": "_nativeToken",
          "type": "address"
        },
        {
          "name": "_nativeReputation",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "payable": true,
      "stateMutability": "payable",
      "type": "fallback"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "_action",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "_params",
          "type": "bytes32[]"
        }
      ],
      "name": "GenericAction",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "name": "_amountInWei",
          "type": "uint256"
        },
        {
          "indexed": true,
          "name": "_to",
          "type": "address"
        }
      ],
      "name": "SendEther",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "_externalToken",
          "type": "address"
        },
        {
          "indexed": true,
          "name": "_to",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "_value",
          "type": "uint256"
        }
      ],
      "name": "ExternalTokenTransfer",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "_externalToken",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "_from",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "_to",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "_value",
          "type": "uint256"
        }
      ],
      "name": "ExternalTokenTransferFrom",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "_externalToken",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "_spender",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "_addedValue",
          "type": "uint256"
        }
      ],
      "name": "ExternalTokenIncreaseApproval",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "_externalToken",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "_spender",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "_subtractedValue",
          "type": "uint256"
        }
      ],
      "name": "ExternalTokenDecreaseApproval",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "_sender",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "_value",
          "type": "uint256"
        }
      ],
      "name": "ReceiveEther",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "previousOwner",
          "type": "address"
        },
        {
          "indexed": true,
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "OwnershipTransferred",
      "type": "event"
    }
  ],
  "bytecode": "0x6060604052341561000f57600080fd5b6040516060806109d583398101604052808051919060200180519190602001805160008054600160a060020a03338116600160a060020a031992831617909255600196909655600280549582169587169590951790945560038054949091169390941692909217909255505061094b8061008a6000396000f3006060604052600436106100955763ffffffff60e060020a6000350416631386dc2d81146100d45780636ce15a54146100f957806389ae1c901461016a5780638cf1355c146101995780638da5cb5b146101c1578063b756d5a2146101d4578063cb16d4a214610202578063d29ab9c414610224578063dab0efff1461024c578063e1758bd814610274578063f2fde38b14610287575b33600160a060020a03167ff32a9f77675fd5917534c7746608fd3e309eac68fbdcbf5925e24ca97a7043963460405190815260200160405180910390a2005b34156100df57600080fd5b6100e76102a8565b60405190815260200160405180910390f35b341561010457600080fd5b61015660048035600160a060020a03169060446024803590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506102ae95505050505050565b604051901515815260200160405180910390f35b341561017557600080fd5b61017d610400565b604051600160a060020a03909116815260200160405180910390f35b34156101a457600080fd5b610156600160a060020a036004358116906024351660443561040f565b34156101cc57600080fd5b61017d6104fb565b34156101df57600080fd5b610156600160a060020a036004358116906024358116906044351660643561050a565b341561020d57600080fd5b610156600435600160a060020a0360243516610610565b341561022f57600080fd5b610156600160a060020a03600435811690602435166044356106a3565b341561025757600080fd5b610156600160a060020a036004358116906024351660443561078f565b341561027f57600080fd5b61017d610875565b341561029257600080fd5b6102a6600160a060020a0360043516610884565b005b60015481565b6000805433600160a060020a039081169116146102ca57600080fd5b82600160a060020a03167f8518530cc6bc186721ab2fc226031ca054c8484893d8b0c7faab65a58aac238d8360405160208082528190810183818151815260200191508051906020019060200280838360005b8381101561033557808201518382015260200161031d565b505050509050019250505060405180910390a282600160a060020a03166040517f616374696f6e28627974657333325b5d290000000000000000000000000000008152601101604051809103902060e060020a900460208451856040518463ffffffff1660e060020a02815260040180848152602001838152602001828051906020019060200280838360005b838110156103da5780820151838201526020016103c2565b5050505090500193505050506000604051808303818661646e5a03f49695505050505050565b600354600160a060020a031681565b6000805433600160a060020a0390811691161461042b57600080fd5b83600160a060020a031663d73dd623848460006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561048857600080fd5b6102c65a03f1151561049957600080fd5b50505060405180515050600160a060020a0384167fbe7df27d98bd0614ae920a695c2c2be09c164d8456083da020a98538692c465f8484604051600160a060020a03909216825260208201526040908101905180910390a25060019392505050565b600054600160a060020a031681565b6000805433600160a060020a0390811691161461052657600080fd5b84600160a060020a03166323b872dd85858560006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561059057600080fd5b6102c65a03f115156105a157600080fd5b50505060405180515050600160a060020a0385167f179c15de44aa7ab84896301974328eb40b5b40fe01cfe0fee2924ea712c3e843858585604051600160a060020a039384168152919092166020820152604080820192909252606001905180910390a2506001949350505050565b6000805433600160a060020a0390811691161461062c57600080fd5b600160a060020a03821683156108fc0284604051600060405180830381858888f19350505050151561065d57600080fd5b81600160a060020a03167f22fca66666089f39bc900dd6605b489df4aae6260cc8ea8257594cfb8c84926c8460405190815260200160405180910390a250600192915050565b6000805433600160a060020a039081169116146106bf57600080fd5b83600160a060020a03166366188463848460006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561071c57600080fd5b6102c65a03f1151561072d57600080fd5b50505060405180515050600160a060020a0384167f495e426dd61227fe840d969dfba17620c573364af8c37748ea71f96f744ae3348484604051600160a060020a03909216825260208201526040908101905180910390a25060019392505050565b6000805433600160a060020a039081169116146107ab57600080fd5b83600160a060020a031663a9059cbb848460006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561080857600080fd5b6102c65a03f1151561081957600080fd5b505050604051805190505082600160a060020a031684600160a060020a03167f49dc2a60d2599a7b6932d78fb694c30dfc596fe4e0282b5d0fd184b52472c04d8460405190815260200160405180910390a35060019392505050565b600254600160a060020a031681565b60005433600160a060020a0390811691161461089f57600080fd5b600160a060020a03811615156108b457600080fd5b600054600160a060020a0380831691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03929092169190911790555600a165627a7a723058209fb765046638e28965ad32417323386abb52967769e0e58d579f0f4f17f4c53e0029",
  "deployedBytecode": "0x6060604052600436106100955763ffffffff60e060020a6000350416631386dc2d81146100d45780636ce15a54146100f957806389ae1c901461016a5780638cf1355c146101995780638da5cb5b146101c1578063b756d5a2146101d4578063cb16d4a214610202578063d29ab9c414610224578063dab0efff1461024c578063e1758bd814610274578063f2fde38b14610287575b33600160a060020a03167ff32a9f77675fd5917534c7746608fd3e309eac68fbdcbf5925e24ca97a7043963460405190815260200160405180910390a2005b34156100df57600080fd5b6100e76102a8565b60405190815260200160405180910390f35b341561010457600080fd5b61015660048035600160a060020a03169060446024803590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506102ae95505050505050565b604051901515815260200160405180910390f35b341561017557600080fd5b61017d610400565b604051600160a060020a03909116815260200160405180910390f35b34156101a457600080fd5b610156600160a060020a036004358116906024351660443561040f565b34156101cc57600080fd5b61017d6104fb565b34156101df57600080fd5b610156600160a060020a036004358116906024358116906044351660643561050a565b341561020d57600080fd5b610156600435600160a060020a0360243516610610565b341561022f57600080fd5b610156600160a060020a03600435811690602435166044356106a3565b341561025757600080fd5b610156600160a060020a036004358116906024351660443561078f565b341561027f57600080fd5b61017d610875565b341561029257600080fd5b6102a6600160a060020a0360043516610884565b005b60015481565b6000805433600160a060020a039081169116146102ca57600080fd5b82600160a060020a03167f8518530cc6bc186721ab2fc226031ca054c8484893d8b0c7faab65a58aac238d8360405160208082528190810183818151815260200191508051906020019060200280838360005b8381101561033557808201518382015260200161031d565b505050509050019250505060405180910390a282600160a060020a03166040517f616374696f6e28627974657333325b5d290000000000000000000000000000008152601101604051809103902060e060020a900460208451856040518463ffffffff1660e060020a02815260040180848152602001838152602001828051906020019060200280838360005b838110156103da5780820151838201526020016103c2565b5050505090500193505050506000604051808303818661646e5a03f49695505050505050565b600354600160a060020a031681565b6000805433600160a060020a0390811691161461042b57600080fd5b83600160a060020a031663d73dd623848460006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561048857600080fd5b6102c65a03f1151561049957600080fd5b50505060405180515050600160a060020a0384167fbe7df27d98bd0614ae920a695c2c2be09c164d8456083da020a98538692c465f8484604051600160a060020a03909216825260208201526040908101905180910390a25060019392505050565b600054600160a060020a031681565b6000805433600160a060020a0390811691161461052657600080fd5b84600160a060020a03166323b872dd85858560006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561059057600080fd5b6102c65a03f115156105a157600080fd5b50505060405180515050600160a060020a0385167f179c15de44aa7ab84896301974328eb40b5b40fe01cfe0fee2924ea712c3e843858585604051600160a060020a039384168152919092166020820152604080820192909252606001905180910390a2506001949350505050565b6000805433600160a060020a0390811691161461062c57600080fd5b600160a060020a03821683156108fc0284604051600060405180830381858888f19350505050151561065d57600080fd5b81600160a060020a03167f22fca66666089f39bc900dd6605b489df4aae6260cc8ea8257594cfb8c84926c8460405190815260200160405180910390a250600192915050565b6000805433600160a060020a039081169116146106bf57600080fd5b83600160a060020a03166366188463848460006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561071c57600080fd5b6102c65a03f1151561072d57600080fd5b50505060405180515050600160a060020a0384167f495e426dd61227fe840d969dfba17620c573364af8c37748ea71f96f744ae3348484604051600160a060020a03909216825260208201526040908101905180910390a25060019392505050565b6000805433600160a060020a039081169116146107ab57600080fd5b83600160a060020a031663a9059cbb848460006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561080857600080fd5b6102c65a03f1151561081957600080fd5b505050604051805190505082600160a060020a031684600160a060020a03167f49dc2a60d2599a7b6932d78fb694c30dfc596fe4e0282b5d0fd184b52472c04d8460405190815260200160405180910390a35060019392505050565b600254600160a060020a031681565b60005433600160a060020a0390811691161461089f57600080fd5b600160a060020a03811615156108b457600080fd5b600054600160a060020a0380831691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03929092169190911790555600a165627a7a723058209fb765046638e28965ad32417323386abb52967769e0e58d579f0f4f17f4c53e0029",
  "sourceMap": "401:5065:6:-;;;1318:211;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;501:5:35;:18;;-1:-1:-1;;;;;509:10:35;501:18;;-1:-1:-1;;;;;;501:18:35;;;;;;;;1422::6;;;;1450:11;:26;;;;;;;;;;;;;;;1486:16;:36;;;;;;;;;;;;;;;;;-1:-1:-1;;401:5065:6;;;;;;",
  "deployedSourceMap": "401:5065:6:-;;;;;;;;-1:-1:-1;;;401:5065:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1646:10:6;1633:35;;1658:9;1633:35;;;;;;;;;;;;;;401:5065;434:22;;;;;;;;;;;;;;;;;;;;;;;;;;;2060:447;;;;;;;;;;;;;-1:-1:-1;;;;;2060:447:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2060:447:6;;-1:-1:-1;2060:447:6;;-1:-1:-1;;;;;;2060:447:6;;;;;;;;;;;;;;;;;;495:34;;;;;;;;;;;;;;;-1:-1:-1;;;;;495:34:6;;;;;;;;;;;;;;;4439:314;;;;;;;;;;-1:-1:-1;;;;;4439:314:6;;;;;;;;;;;;238:20:35;;;;;;;;;;;;3724:339:6;;;;;;;;;;-1:-1:-1;;;;;3724:339:6;;;;;;;;;;;;;;;;;2723:184;;;;;;;;;;;;;;-1:-1:-1;;;;;2723:184:6;;;5134:329;;;;;;;;;;-1:-1:-1;;;;;5134:329:6;;;;;;;;;;;;3148:260;;;;;;;;;;-1:-1:-1;;;;;3148:260:6;;;;;;;;;;;;462:27;;;;;;;;;;;;834:169:35;;;;;;;;;;;;-1:-1:-1;;;;;834:169:35;;;;;434:22:6;;;;:::o;2060:447::-;2148:4;654:5:35;;640:10;-1:-1:-1;;;;;640:19:35;;;654:5;;640:19;632:28;;;;;;-1:-1:-1;;;;;2168:31:6;;;2191:7;2168:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;-1:-1;;;;;2280:20:6;;2308:30;;;;;;;;;;;;;;;-1:-1:-1;;;2280:186:6;;2357:2;2410:7;:14;2458:7;2280:186;;;;;-1:-1:-1;;;2280:186:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;2060:447:6;-1:-1:-1;;;;;;2060:447:6:o;495:34::-;;;-1:-1:-1;;;;;495:34:6;;:::o;4439:314::-;4573:4;654:5:35;;640:10;-1:-1:-1;;;;;640:19:35;;;654:5;;640:19;632:28;;;;;;-1:-1:-1;;;;;4593:31:6;;;4625:8;4635:11;4593:54;;;;;;;;;;;-1:-1:-1;;;4593:54:6;;;-1:-1:-1;;;;;4593:54:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;4657:68:6;;;4703:8;4713:11;4657:68;;-1:-1:-1;;;;;4657:68:6;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4742:4:6;4439:314;;;;;:::o;238:20:35:-;;;-1:-1:-1;;;;;238:20:35;;:::o;3724:339:6:-;3897:4;654:5:35;;640:10;-1:-1:-1;;;;;640:19:35;;;654:5;;640:19;632:28;;;;;;-1:-1:-1;;;;;3917:27:6;;;3945:5;3952:3;3957:6;3917:47;;;;;;;;;;;-1:-1:-1;;;3917:47:6;;;-1:-1:-1;;;;;3917:47:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;3974:61:6;;;4016:5;4023:3;4028:6;3974:61;;-1:-1:-1;;;;;3974:61:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4052:4:6;3724:339;;;;;;:::o;2723:184::-;2799:4;654:5:35;;640:10;-1:-1:-1;;;;;640:19:35;;;654:5;;640:19;632:28;;;;;;-1:-1:-1;;;;;2815:12:6;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2851:28:6;;;2861:12;2851:28;;;;;;;;;;;;;;-1:-1:-1;2896:4:6;2723:184;;;;:::o;5134:329::-;5274:4;654:5:35;;640:10;-1:-1:-1;;;;;640:19:35;;;654:5;;640:19;632:28;;;;;;-1:-1:-1;;;;;5294:31:6;;;5326:8;5336:16;5294:59;;;;;;;;;;;-1:-1:-1;;;5294:59:6;;;-1:-1:-1;;;;;5294:59:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;5363:72:6;;;5408:8;5418:16;5363:72;;-1:-1:-1;;;;;5363:72:6;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5452:4:6;5134:329;;;;;:::o;3148:260::-;3264:4;654:5:35;;640:10;-1:-1:-1;;;;;640:19:35;;;654:5;;640:19;632:28;;;;;;-1:-1:-1;;;;;3284:23:6;;;3308:3;3313:6;3284:36;;;;;;;;;;;-1:-1:-1;;;3284:36:6;;;-1:-1:-1;;;;;3284:36:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;3330:50:6;;;;;;;3373:6;3330:50;;;;;;;;;;;;;;-1:-1:-1;3397:4:6;3148:260;;;;;:::o;462:27::-;;;-1:-1:-1;;;;;462:27:6;;:::o;834:169:35:-;654:5;;640:10;-1:-1:-1;;;;;640:19:35;;;654:5;;640:19;632:28;;;;;;-1:-1:-1;;;;;910:22:35;;;;902:31;;;;;;960:5;;-1:-1:-1;;;;;939:37:35;;;;960:5;939:37;;;;;;;;;;982:5;:16;;-1:-1:-1;;982:16:35;-1:-1:-1;;;;;982:16:35;;;;;;;;;;834:169::o",
  "source": "pragma solidity ^0.4.18;\n\nimport \"./Controller.sol\";\nimport \"./Reputation.sol\";\nimport \"./DAOToken.sol\";\nimport \"zeppelin-solidity/contracts/ownership/Ownable.sol\";\nimport \"zeppelin-solidity/contracts/token/StandardToken.sol\";\n\n\ncontract ActionInterface {\n    function action(bytes32[] _params) public returns(bool);\n}\n\n\n/**\n * @title An Avatar holds tokens, reputation and ether for a controller\n */\ncontract Avatar is Ownable {\n    bytes32 public orgName;\n    DAOToken public nativeToken;\n    Reputation public nativeReputation;\n\n    event GenericAction(address indexed _action, bytes32[] _params);\n    event SendEther(uint _amountInWei, address indexed _to);\n    event ExternalTokenTransfer(address indexed _externalToken, address indexed _to, uint _value);\n    event ExternalTokenTransferFrom(address indexed _externalToken, address _from, address _to, uint _value);\n    event ExternalTokenIncreaseApproval(StandardToken indexed _externalToken, address _spender, uint _addedValue);\n    event ExternalTokenDecreaseApproval(StandardToken indexed _externalToken, address _spender, uint _subtractedValue);\n    event ReceiveEther(address indexed _sender, uint _value);\n\n    /**\n    * @dev the constructor takes organization name, native token and reputation system\n    and creates an avatar for a controller\n    */\n    function Avatar(bytes32 _orgName, DAOToken _nativeToken, Reputation _nativeReputation) public {\n        orgName = _orgName;\n        nativeToken = _nativeToken;\n        nativeReputation = _nativeReputation;\n    }\n\n    /**\n    * @dev enables an avatar to receive ethers\n    */\n    function() public payable {\n        ReceiveEther(msg.sender, msg.value);\n    }\n\n    /**\n    * @dev call an action function on an ActionInterface.\n    * This function use delegatecall and might expose the organization to security\n    * risk. Use this function only if you really knows what you are doing.\n    * @param _action the address of the contract to call.\n    * @param _params the params for the call.\n    * @return bool which represents success\n    */\n    function genericAction(address _action, bytes32[] _params)\n    public onlyOwner returns(bool)\n    {\n        GenericAction(_action, _params);\n        // solium-disable-next-line security/no-low-level-calls\n        return _action.delegatecall(bytes4(keccak256(\"action(bytes32[])\")),\n        uint256(32),// length of length of the array\n        uint256(_params.length), // length of the array\n        _params);                 // array itself);\n    }\n\n    /**\n    * @dev send ethers from the avatar's wallet\n    * @param _amountInWei amount to send in Wei units\n    * @param _to send the ethers to this address\n    * @return bool which represents success\n    */\n    function sendEther(uint _amountInWei, address _to) public onlyOwner returns(bool) {\n        _to.transfer(_amountInWei);\n        SendEther(_amountInWei, _to);\n        return true;\n    }\n\n    /**\n    * @dev external token transfer\n    * @param _externalToken the token contract\n    * @param _to the destination address\n    * @param _value the amount of tokens to transfer\n    * @return bool which represents success\n    */\n    function externalTokenTransfer(StandardToken _externalToken, address _to, uint _value)\n    public onlyOwner returns(bool)\n    {\n        _externalToken.transfer(_to, _value);\n        ExternalTokenTransfer(_externalToken, _to, _value);\n        return true;\n    }\n\n    /**\n    * @dev external token transfer from a specific account\n    * @param _externalToken the token contract\n    * @param _from the account to spend token from\n    * @param _to the destination address\n    * @param _value the amount of tokens to transfer\n    * @return bool which represents success\n    */\n    function externalTokenTransferFrom(\n        StandardToken _externalToken,\n        address _from,\n        address _to,\n        uint _value\n    )\n    public onlyOwner returns(bool)\n    {\n        _externalToken.transferFrom(_from, _to, _value);\n        ExternalTokenTransferFrom(_externalToken, _from, _to, _value);\n        return true;\n    }\n\n    /**\n    * @dev increase approval for the spender address to spend a specified amount of tokens\n    *      on behalf of msg.sender.\n    * @param _externalToken the address of the Token Contract\n    * @param _spender address\n    * @param _addedValue the amount of ether (in Wei) which the approval is referring to.\n    * @return bool which represents a success\n    */\n    function externalTokenIncreaseApproval(StandardToken _externalToken, address _spender, uint _addedValue)\n    public onlyOwner returns(bool)\n    {\n        _externalToken.increaseApproval(_spender, _addedValue);\n        ExternalTokenIncreaseApproval(_externalToken, _spender, _addedValue);\n        return true;\n    }\n\n    /**\n    * @dev decrease approval for the spender address to spend a specified amount of tokens\n    *      on behalf of msg.sender.\n    * @param _externalToken the address of the Token Contract\n    * @param _spender address\n    * @param _subtractedValue the amount of ether (in Wei) which the approval is referring to.\n    * @return bool which represents a success\n    */\n    function externalTokenDecreaseApproval(StandardToken _externalToken, address _spender, uint _subtractedValue )\n    public onlyOwner returns(bool)\n    {\n        _externalToken.decreaseApproval(_spender, _subtractedValue);\n        ExternalTokenDecreaseApproval(_externalToken,_spender, _subtractedValue);\n        return true;\n    }\n\n}\n",
  "sourcePath": "/Users/oren/daostack/daostack2/daostack/contracts/controller/Avatar.sol",
  "ast": {
    "attributes": {
      "absolutePath": "/Users/oren/daostack/daostack2/daostack/contracts/controller/Avatar.sol",
      "exportedSymbols": {
        "ActionInterface": [
          3598
        ],
        "Avatar": [
          3873
        ]
      }
    },
    "children": [
      {
        "attributes": {
          "literals": [
            "solidity",
            "^",
            "0.4",
            ".18"
          ]
        },
        "id": 3584,
        "name": "PragmaDirective",
        "src": "0:24:6"
      },
      {
        "attributes": {
          "SourceUnit": 4968,
          "absolutePath": "/Users/oren/daostack/daostack2/daostack/contracts/controller/Controller.sol",
          "file": "./Controller.sol",
          "scope": 3874,
          "symbolAliases": [
            null
          ],
          "unitAlias": ""
        },
        "id": 3585,
        "name": "ImportDirective",
        "src": "26:26:6"
      },
      {
        "attributes": {
          "SourceUnit": 5353,
          "absolutePath": "/Users/oren/daostack/daostack2/daostack/contracts/controller/Reputation.sol",
          "file": "./Reputation.sol",
          "scope": 3874,
          "symbolAliases": [
            null
          ],
          "unitAlias": ""
        },
        "id": 3586,
        "name": "ImportDirective",
        "src": "53:26:6"
      },
      {
        "attributes": {
          "SourceUnit": 5208,
          "absolutePath": "/Users/oren/daostack/daostack2/daostack/contracts/controller/DAOToken.sol",
          "file": "./DAOToken.sol",
          "scope": 3874,
          "symbolAliases": [
            null
          ],
          "unitAlias": ""
        },
        "id": 3587,
        "name": "ImportDirective",
        "src": "80:24:6"
      },
      {
        "attributes": {
          "SourceUnit": 11446,
          "absolutePath": "zeppelin-solidity/contracts/ownership/Ownable.sol",
          "file": "zeppelin-solidity/contracts/ownership/Ownable.sol",
          "scope": 3874,
          "symbolAliases": [
            null
          ],
          "unitAlias": ""
        },
        "id": 3588,
        "name": "ImportDirective",
        "src": "105:59:6"
      },
      {
        "attributes": {
          "SourceUnit": 12000,
          "absolutePath": "zeppelin-solidity/contracts/token/StandardToken.sol",
          "file": "zeppelin-solidity/contracts/token/StandardToken.sol",
          "scope": 3874,
          "symbolAliases": [
            null
          ],
          "unitAlias": ""
        },
        "id": 3589,
        "name": "ImportDirective",
        "src": "165:61:6"
      },
      {
        "attributes": {
          "baseContracts": [
            null
          ],
          "contractDependencies": [
            null
          ],
          "contractKind": "contract",
          "documentation": null,
          "fullyImplemented": false,
          "linearizedBaseContracts": [
            3598
          ],
          "name": "ActionInterface",
          "scope": 3874
        },
        "children": [
          {
            "attributes": {
              "body": null,
              "constant": false,
              "implemented": false,
              "isConstructor": false,
              "modifiers": [
                null
              ],
              "name": "action",
              "payable": false,
              "scope": 3598,
              "stateMutability": "nonpayable",
              "superFunction": null,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_params",
                      "scope": 3597,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32[] memory",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "length": null,
                          "type": "bytes32[] storage pointer"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "bytes32",
                              "type": "bytes32"
                            },
                            "id": 3590,
                            "name": "ElementaryTypeName",
                            "src": "276:7:6"
                          }
                        ],
                        "id": 3591,
                        "name": "ArrayTypeName",
                        "src": "276:9:6"
                      }
                    ],
                    "id": 3592,
                    "name": "VariableDeclaration",
                    "src": "276:17:6"
                  }
                ],
                "id": 3593,
                "name": "ParameterList",
                "src": "275:19:6"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 3597,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bool",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bool",
                          "type": "bool"
                        },
                        "id": 3594,
                        "name": "ElementaryTypeName",
                        "src": "310:4:6"
                      }
                    ],
                    "id": 3595,
                    "name": "VariableDeclaration",
                    "src": "310:4:6"
                  }
                ],
                "id": 3596,
                "name": "ParameterList",
                "src": "309:6:6"
              }
            ],
            "id": 3597,
            "name": "FunctionDefinition",
            "src": "260:56:6"
          }
        ],
        "id": 3598,
        "name": "ContractDefinition",
        "src": "229:89:6"
      },
      {
        "attributes": {
          "contractDependencies": [
            11445
          ],
          "contractKind": "contract",
          "documentation": "@title An Avatar holds tokens, reputation and ether for a controller",
          "fullyImplemented": true,
          "linearizedBaseContracts": [
            3873,
            11445
          ],
          "name": "Avatar",
          "scope": 3874
        },
        "children": [
          {
            "attributes": {
              "arguments": [
                null
              ]
            },
            "children": [
              {
                "attributes": {
                  "contractScope": null,
                  "name": "Ownable",
                  "referencedDeclaration": 11445,
                  "type": "contract Ownable"
                },
                "id": 3599,
                "name": "UserDefinedTypeName",
                "src": "420:7:6"
              }
            ],
            "id": 3600,
            "name": "InheritanceSpecifier",
            "src": "420:7:6"
          },
          {
            "attributes": {
              "constant": false,
              "name": "orgName",
              "scope": 3873,
              "stateVariable": true,
              "storageLocation": "default",
              "type": "bytes32",
              "value": null,
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "name": "bytes32",
                  "type": "bytes32"
                },
                "id": 3601,
                "name": "ElementaryTypeName",
                "src": "434:7:6"
              }
            ],
            "id": 3602,
            "name": "VariableDeclaration",
            "src": "434:22:6"
          },
          {
            "attributes": {
              "constant": false,
              "name": "nativeToken",
              "scope": 3873,
              "stateVariable": true,
              "storageLocation": "default",
              "type": "contract DAOToken",
              "value": null,
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "contractScope": null,
                  "name": "DAOToken",
                  "referencedDeclaration": 5207,
                  "type": "contract DAOToken"
                },
                "id": 3603,
                "name": "UserDefinedTypeName",
                "src": "462:8:6"
              }
            ],
            "id": 3604,
            "name": "VariableDeclaration",
            "src": "462:27:6"
          },
          {
            "attributes": {
              "constant": false,
              "name": "nativeReputation",
              "scope": 3873,
              "stateVariable": true,
              "storageLocation": "default",
              "type": "contract Reputation",
              "value": null,
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "contractScope": null,
                  "name": "Reputation",
                  "referencedDeclaration": 5352,
                  "type": "contract Reputation"
                },
                "id": 3605,
                "name": "UserDefinedTypeName",
                "src": "495:10:6"
              }
            ],
            "id": 3606,
            "name": "VariableDeclaration",
            "src": "495:34:6"
          },
          {
            "attributes": {
              "anonymous": false,
              "name": "GenericAction"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "_action",
                      "scope": 3613,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 3607,
                        "name": "ElementaryTypeName",
                        "src": "556:7:6"
                      }
                    ],
                    "id": 3608,
                    "name": "VariableDeclaration",
                    "src": "556:23:6"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": false,
                      "name": "_params",
                      "scope": 3613,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32[] memory",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "length": null,
                          "type": "bytes32[] storage pointer"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "bytes32",
                              "type": "bytes32"
                            },
                            "id": 3609,
                            "name": "ElementaryTypeName",
                            "src": "581:7:6"
                          }
                        ],
                        "id": 3610,
                        "name": "ArrayTypeName",
                        "src": "581:9:6"
                      }
                    ],
                    "id": 3611,
                    "name": "VariableDeclaration",
                    "src": "581:17:6"
                  }
                ],
                "id": 3612,
                "name": "ParameterList",
                "src": "555:44:6"
              }
            ],
            "id": 3613,
            "name": "EventDefinition",
            "src": "536:64:6"
          },
          {
            "attributes": {
              "anonymous": false,
              "name": "SendEther"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": false,
                      "name": "_amountInWei",
                      "scope": 3619,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 3614,
                        "name": "ElementaryTypeName",
                        "src": "621:4:6"
                      }
                    ],
                    "id": 3615,
                    "name": "VariableDeclaration",
                    "src": "621:17:6"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "_to",
                      "scope": 3619,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 3616,
                        "name": "ElementaryTypeName",
                        "src": "640:7:6"
                      }
                    ],
                    "id": 3617,
                    "name": "VariableDeclaration",
                    "src": "640:19:6"
                  }
                ],
                "id": 3618,
                "name": "ParameterList",
                "src": "620:40:6"
              }
            ],
            "id": 3619,
            "name": "EventDefinition",
            "src": "605:56:6"
          },
          {
            "attributes": {
              "anonymous": false,
              "name": "ExternalTokenTransfer"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "_externalToken",
                      "scope": 3627,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 3620,
                        "name": "ElementaryTypeName",
                        "src": "694:7:6"
                      }
                    ],
                    "id": 3621,
                    "name": "VariableDeclaration",
                    "src": "694:30:6"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "_to",
                      "scope": 3627,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 3622,
                        "name": "ElementaryTypeName",
                        "src": "726:7:6"
                      }
                    ],
                    "id": 3623,
                    "name": "VariableDeclaration",
                    "src": "726:19:6"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": false,
                      "name": "_value",
                      "scope": 3627,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 3624,
                        "name": "ElementaryTypeName",
                        "src": "747:4:6"
                      }
                    ],
                    "id": 3625,
                    "name": "VariableDeclaration",
                    "src": "747:11:6"
                  }
                ],
                "id": 3626,
                "name": "ParameterList",
                "src": "693:66:6"
              }
            ],
            "id": 3627,
            "name": "EventDefinition",
            "src": "666:94:6"
          },
          {
            "attributes": {
              "anonymous": false,
              "name": "ExternalTokenTransferFrom"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "_externalToken",
                      "scope": 3637,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 3628,
                        "name": "ElementaryTypeName",
                        "src": "797:7:6"
                      }
                    ],
                    "id": 3629,
                    "name": "VariableDeclaration",
                    "src": "797:30:6"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": false,
                      "name": "_from",
                      "scope": 3637,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 3630,
                        "name": "ElementaryTypeName",
                        "src": "829:7:6"
                      }
                    ],
                    "id": 3631,
                    "name": "VariableDeclaration",
                    "src": "829:13:6"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": false,
                      "name": "_to",
                      "scope": 3637,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 3632,
                        "name": "ElementaryTypeName",
                        "src": "844:7:6"
                      }
                    ],
                    "id": 3633,
                    "name": "VariableDeclaration",
                    "src": "844:11:6"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": false,
                      "name": "_value",
                      "scope": 3637,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 3634,
                        "name": "ElementaryTypeName",
                        "src": "857:4:6"
                      }
                    ],
                    "id": 3635,
                    "name": "VariableDeclaration",
                    "src": "857:11:6"
                  }
                ],
                "id": 3636,
                "name": "ParameterList",
                "src": "796:73:6"
              }
            ],
            "id": 3637,
            "name": "EventDefinition",
            "src": "765:105:6"
          },
          {
            "attributes": {
              "anonymous": false,
              "name": "ExternalTokenIncreaseApproval"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "_externalToken",
                      "scope": 3645,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "contract StandardToken",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "contractScope": null,
                          "name": "StandardToken",
                          "referencedDeclaration": 11999,
                          "type": "contract StandardToken"
                        },
                        "id": 3638,
                        "name": "UserDefinedTypeName",
                        "src": "911:13:6"
                      }
                    ],
                    "id": 3639,
                    "name": "VariableDeclaration",
                    "src": "911:36:6"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": false,
                      "name": "_spender",
                      "scope": 3645,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 3640,
                        "name": "ElementaryTypeName",
                        "src": "949:7:6"
                      }
                    ],
                    "id": 3641,
                    "name": "VariableDeclaration",
                    "src": "949:16:6"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": false,
                      "name": "_addedValue",
                      "scope": 3645,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 3642,
                        "name": "ElementaryTypeName",
                        "src": "967:4:6"
                      }
                    ],
                    "id": 3643,
                    "name": "VariableDeclaration",
                    "src": "967:16:6"
                  }
                ],
                "id": 3644,
                "name": "ParameterList",
                "src": "910:74:6"
              }
            ],
            "id": 3645,
            "name": "EventDefinition",
            "src": "875:110:6"
          },
          {
            "attributes": {
              "anonymous": false,
              "name": "ExternalTokenDecreaseApproval"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "_externalToken",
                      "scope": 3653,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "contract StandardToken",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "contractScope": null,
                          "name": "StandardToken",
                          "referencedDeclaration": 11999,
                          "type": "contract StandardToken"
                        },
                        "id": 3646,
                        "name": "UserDefinedTypeName",
                        "src": "1026:13:6"
                      }
                    ],
                    "id": 3647,
                    "name": "VariableDeclaration",
                    "src": "1026:36:6"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": false,
                      "name": "_spender",
                      "scope": 3653,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 3648,
                        "name": "ElementaryTypeName",
                        "src": "1064:7:6"
                      }
                    ],
                    "id": 3649,
                    "name": "VariableDeclaration",
                    "src": "1064:16:6"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": false,
                      "name": "_subtractedValue",
                      "scope": 3653,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 3650,
                        "name": "ElementaryTypeName",
                        "src": "1082:4:6"
                      }
                    ],
                    "id": 3651,
                    "name": "VariableDeclaration",
                    "src": "1082:21:6"
                  }
                ],
                "id": 3652,
                "name": "ParameterList",
                "src": "1025:79:6"
              }
            ],
            "id": 3653,
            "name": "EventDefinition",
            "src": "990:115:6"
          },
          {
            "attributes": {
              "anonymous": false,
              "name": "ReceiveEther"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "_sender",
                      "scope": 3659,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 3654,
                        "name": "ElementaryTypeName",
                        "src": "1129:7:6"
                      }
                    ],
                    "id": 3655,
                    "name": "VariableDeclaration",
                    "src": "1129:23:6"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": false,
                      "name": "_value",
                      "scope": 3659,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 3656,
                        "name": "ElementaryTypeName",
                        "src": "1154:4:6"
                      }
                    ],
                    "id": 3657,
                    "name": "VariableDeclaration",
                    "src": "1154:11:6"
                  }
                ],
                "id": 3658,
                "name": "ParameterList",
                "src": "1128:38:6"
              }
            ],
            "id": 3659,
            "name": "EventDefinition",
            "src": "1110:57:6"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": true,
              "modifiers": [
                null
              ],
              "name": "Avatar",
              "payable": false,
              "scope": 3873,
              "stateMutability": "nonpayable",
              "superFunction": null,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_orgName",
                      "scope": 3681,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 3660,
                        "name": "ElementaryTypeName",
                        "src": "1334:7:6"
                      }
                    ],
                    "id": 3661,
                    "name": "VariableDeclaration",
                    "src": "1334:16:6"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_nativeToken",
                      "scope": 3681,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "contract DAOToken",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "contractScope": null,
                          "name": "DAOToken",
                          "referencedDeclaration": 5207,
                          "type": "contract DAOToken"
                        },
                        "id": 3662,
                        "name": "UserDefinedTypeName",
                        "src": "1352:8:6"
                      }
                    ],
                    "id": 3663,
                    "name": "VariableDeclaration",
                    "src": "1352:21:6"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_nativeReputation",
                      "scope": 3681,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "contract Reputation",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "contractScope": null,
                          "name": "Reputation",
                          "referencedDeclaration": 5352,
                          "type": "contract Reputation"
                        },
                        "id": 3664,
                        "name": "UserDefinedTypeName",
                        "src": "1375:10:6"
                      }
                    ],
                    "id": 3665,
                    "name": "VariableDeclaration",
                    "src": "1375:28:6"
                  }
                ],
                "id": 3666,
                "name": "ParameterList",
                "src": "1333:71:6"
              },
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 3667,
                "name": "ParameterList",
                "src": "1412:0:6"
              },
              {
                "children": [
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "bytes32"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 3602,
                              "type": "bytes32",
                              "value": "orgName"
                            },
                            "id": 3668,
                            "name": "Identifier",
                            "src": "1422:7:6"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 3661,
                              "type": "bytes32",
                              "value": "_orgName"
                            },
                            "id": 3669,
                            "name": "Identifier",
                            "src": "1432:8:6"
                          }
                        ],
                        "id": 3670,
                        "name": "Assignment",
                        "src": "1422:18:6"
                      }
                    ],
                    "id": 3671,
                    "name": "ExpressionStatement",
                    "src": "1422:18:6"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "contract DAOToken"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 3604,
                              "type": "contract DAOToken",
                              "value": "nativeToken"
                            },
                            "id": 3672,
                            "name": "Identifier",
                            "src": "1450:11:6"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 3663,
                              "type": "contract DAOToken",
                              "value": "_nativeToken"
                            },
                            "id": 3673,
                            "name": "Identifier",
                            "src": "1464:12:6"
                          }
                        ],
                        "id": 3674,
                        "name": "Assignment",
                        "src": "1450:26:6"
                      }
                    ],
                    "id": 3675,
                    "name": "ExpressionStatement",
                    "src": "1450:26:6"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "contract Reputation"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 3606,
                              "type": "contract Reputation",
                              "value": "nativeReputation"
                            },
                            "id": 3676,
                            "name": "Identifier",
                            "src": "1486:16:6"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 3665,
                              "type": "contract Reputation",
                              "value": "_nativeReputation"
                            },
                            "id": 3677,
                            "name": "Identifier",
                            "src": "1505:17:6"
                          }
                        ],
                        "id": 3678,
                        "name": "Assignment",
                        "src": "1486:36:6"
                      }
                    ],
                    "id": 3679,
                    "name": "ExpressionStatement",
                    "src": "1486:36:6"
                  }
                ],
                "id": 3680,
                "name": "Block",
                "src": "1412:117:6"
              }
            ],
            "id": 3681,
            "name": "FunctionDefinition",
            "src": "1318:211:6"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": false,
              "modifiers": [
                null
              ],
              "name": "",
              "payable": true,
              "scope": 3873,
              "stateMutability": "payable",
              "superFunction": null,
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 3682,
                "name": "ParameterList",
                "src": "1605:2:6"
              },
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 3683,
                "name": "ParameterList",
                "src": "1623:0:6"
              },
              {
                "children": [
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 3659,
                              "type": "function (address,uint256)",
                              "value": "ReceiveEther"
                            },
                            "id": 3684,
                            "name": "Identifier",
                            "src": "1633:12:6"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "sender",
                              "referencedDeclaration": null,
                              "type": "address"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 12011,
                                  "type": "msg",
                                  "value": "msg"
                                },
                                "id": 3685,
                                "name": "Identifier",
                                "src": "1646:3:6"
                              }
                            ],
                            "id": 3686,
                            "name": "MemberAccess",
                            "src": "1646:10:6"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "value",
                              "referencedDeclaration": null,
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 12011,
                                  "type": "msg",
                                  "value": "msg"
                                },
                                "id": 3687,
                                "name": "Identifier",
                                "src": "1658:3:6"
                              }
                            ],
                            "id": 3688,
                            "name": "MemberAccess",
                            "src": "1658:9:6"
                          }
                        ],
                        "id": 3689,
                        "name": "FunctionCall",
                        "src": "1633:35:6"
                      }
                    ],
                    "id": 3690,
                    "name": "ExpressionStatement",
                    "src": "1633:35:6"
                  }
                ],
                "id": 3691,
                "name": "Block",
                "src": "1623:52:6"
              }
            ],
            "id": 3692,
            "name": "FunctionDefinition",
            "src": "1597:78:6"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": false,
              "name": "genericAction",
              "payable": false,
              "scope": 3873,
              "stateMutability": "nonpayable",
              "superFunction": null,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_action",
                      "scope": 3727,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 3693,
                        "name": "ElementaryTypeName",
                        "src": "2083:7:6"
                      }
                    ],
                    "id": 3694,
                    "name": "VariableDeclaration",
                    "src": "2083:15:6"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_params",
                      "scope": 3727,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32[] memory",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "length": null,
                          "type": "bytes32[] storage pointer"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "bytes32",
                              "type": "bytes32"
                            },
                            "id": 3695,
                            "name": "ElementaryTypeName",
                            "src": "2100:7:6"
                          }
                        ],
                        "id": 3696,
                        "name": "ArrayTypeName",
                        "src": "2100:9:6"
                      }
                    ],
                    "id": 3697,
                    "name": "VariableDeclaration",
                    "src": "2100:17:6"
                  }
                ],
                "id": 3698,
                "name": "ParameterList",
                "src": "2082:36:6"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 3727,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bool",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bool",
                          "type": "bool"
                        },
                        "id": 3701,
                        "name": "ElementaryTypeName",
                        "src": "2148:4:6"
                      }
                    ],
                    "id": 3702,
                    "name": "VariableDeclaration",
                    "src": "2148:4:6"
                  }
                ],
                "id": 3703,
                "name": "ParameterList",
                "src": "2147:6:6"
              },
              {
                "attributes": {
                  "arguments": [
                    null
                  ]
                },
                "children": [
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 11419,
                      "type": "modifier ()",
                      "value": "onlyOwner"
                    },
                    "id": 3699,
                    "name": "Identifier",
                    "src": "2130:9:6"
                  }
                ],
                "id": 3700,
                "name": "ModifierInvocation",
                "src": "2130:9:6"
              },
              {
                "children": [
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                  "typeString": "bytes32[] memory"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 3613,
                              "type": "function (address,bytes32[] memory)",
                              "value": "GenericAction"
                            },
                            "id": 3704,
                            "name": "Identifier",
                            "src": "2168:13:6"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 3694,
                              "type": "address",
                              "value": "_action"
                            },
                            "id": 3705,
                            "name": "Identifier",
                            "src": "2182:7:6"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 3697,
                              "type": "bytes32[] memory",
                              "value": "_params"
                            },
                            "id": 3706,
                            "name": "Identifier",
                            "src": "2191:7:6"
                          }
                        ],
                        "id": 3707,
                        "name": "FunctionCall",
                        "src": "2168:31:6"
                      }
                    ],
                    "id": 3708,
                    "name": "ExpressionStatement",
                    "src": "2168:31:6"
                  },
                  {
                    "attributes": {
                      "functionReturnParameters": 3703
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "bool",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes4",
                                  "typeString": "bytes4"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                {
                                  "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                  "typeString": "bytes32[] memory"
                                }
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "delegatecall",
                              "referencedDeclaration": null,
                              "type": "function () returns (bool)"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 3694,
                                  "type": "address",
                                  "value": "_action"
                                },
                                "id": 3709,
                                "name": "Identifier",
                                "src": "2280:7:6"
                              }
                            ],
                            "id": 3710,
                            "name": "MemberAccess",
                            "src": "2280:20:6"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "isStructConstructorCall": false,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "type": "bytes4",
                              "type_conversion": true
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  ],
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "type": "type(bytes4)",
                                  "value": "bytes4"
                                },
                                "id": 3711,
                                "name": "ElementaryTypeNameExpression",
                                "src": "2301:6:6"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "isStructConstructorCall": false,
                                  "lValueRequested": false,
                                  "names": [
                                    null
                                  ],
                                  "type": "bytes32",
                                  "type_conversion": false
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_stringliteral_7ff4b6301c72901450252ee5e8584376c615d5c87d4c0b2d9dafc6024e2589a0",
                                          "typeString": "literal_string \"action(bytes32[])\""
                                        }
                                      ],
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 12005,
                                      "type": "function () pure returns (bytes32)",
                                      "value": "keccak256"
                                    },
                                    "id": 3712,
                                    "name": "Identifier",
                                    "src": "2308:9:6"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "hexvalue": "616374696f6e28627974657333325b5d29",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "subdenomination": null,
                                      "token": "string",
                                      "type": "literal_string \"action(bytes32[])\"",
                                      "value": "action(bytes32[])"
                                    },
                                    "id": 3713,
                                    "name": "Literal",
                                    "src": "2318:19:6"
                                  }
                                ],
                                "id": 3714,
                                "name": "FunctionCall",
                                "src": "2308:30:6"
                              }
                            ],
                            "id": 3715,
                            "name": "FunctionCall",
                            "src": "2301:38:6"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "isStructConstructorCall": false,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "type": "uint256",
                              "type_conversion": true
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_rational_32_by_1",
                                      "typeString": "int_const 32"
                                    }
                                  ],
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "type": "type(uint256)",
                                  "value": "uint256"
                                },
                                "id": 3716,
                                "name": "ElementaryTypeNameExpression",
                                "src": "2349:7:6"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "hexvalue": "3332",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "subdenomination": null,
                                  "token": "number",
                                  "type": "int_const 32",
                                  "value": "32"
                                },
                                "id": 3717,
                                "name": "Literal",
                                "src": "2357:2:6"
                              }
                            ],
                            "id": 3718,
                            "name": "FunctionCall",
                            "src": "2349:11:6"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "isStructConstructorCall": false,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "type": "uint256",
                              "type_conversion": true
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "type": "type(uint256)",
                                  "value": "uint256"
                                },
                                "id": 3719,
                                "name": "ElementaryTypeNameExpression",
                                "src": "2402:7:6"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "length",
                                  "referencedDeclaration": null,
                                  "type": "uint256"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 3697,
                                      "type": "bytes32[] memory",
                                      "value": "_params"
                                    },
                                    "id": 3720,
                                    "name": "Identifier",
                                    "src": "2410:7:6"
                                  }
                                ],
                                "id": 3721,
                                "name": "MemberAccess",
                                "src": "2410:14:6"
                              }
                            ],
                            "id": 3722,
                            "name": "FunctionCall",
                            "src": "2402:23:6"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 3697,
                              "type": "bytes32[] memory",
                              "value": "_params"
                            },
                            "id": 3723,
                            "name": "Identifier",
                            "src": "2458:7:6"
                          }
                        ],
                        "id": 3724,
                        "name": "FunctionCall",
                        "src": "2280:186:6"
                      }
                    ],
                    "id": 3725,
                    "name": "Return",
                    "src": "2273:193:6"
                  }
                ],
                "id": 3726,
                "name": "Block",
                "src": "2158:349:6"
              }
            ],
            "id": 3727,
            "name": "FunctionDefinition",
            "src": "2060:447:6"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": false,
              "name": "sendEther",
              "payable": false,
              "scope": 3873,
              "stateMutability": "nonpayable",
              "superFunction": null,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_amountInWei",
                      "scope": 3752,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 3728,
                        "name": "ElementaryTypeName",
                        "src": "2742:4:6"
                      }
                    ],
                    "id": 3729,
                    "name": "VariableDeclaration",
                    "src": "2742:17:6"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_to",
                      "scope": 3752,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 3730,
                        "name": "ElementaryTypeName",
                        "src": "2761:7:6"
                      }
                    ],
                    "id": 3731,
                    "name": "VariableDeclaration",
                    "src": "2761:11:6"
                  }
                ],
                "id": 3732,
                "name": "ParameterList",
                "src": "2741:32:6"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 3752,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bool",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bool",
                          "type": "bool"
                        },
                        "id": 3735,
                        "name": "ElementaryTypeName",
                        "src": "2799:4:6"
                      }
                    ],
                    "id": 3736,
                    "name": "VariableDeclaration",
                    "src": "2799:4:6"
                  }
                ],
                "id": 3737,
                "name": "ParameterList",
                "src": "2798:6:6"
              },
              {
                "attributes": {
                  "arguments": [
                    null
                  ]
                },
                "children": [
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 11419,
                      "type": "modifier ()",
                      "value": "onlyOwner"
                    },
                    "id": 3733,
                    "name": "Identifier",
                    "src": "2781:9:6"
                  }
                ],
                "id": 3734,
                "name": "ModifierInvocation",
                "src": "2781:9:6"
              },
              {
                "children": [
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "transfer",
                              "referencedDeclaration": null,
                              "type": "function (uint256)"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 3731,
                                  "type": "address",
                                  "value": "_to"
                                },
                                "id": 3738,
                                "name": "Identifier",
                                "src": "2815:3:6"
                              }
                            ],
                            "id": 3740,
                            "name": "MemberAccess",
                            "src": "2815:12:6"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 3729,
                              "type": "uint256",
                              "value": "_amountInWei"
                            },
                            "id": 3741,
                            "name": "Identifier",
                            "src": "2828:12:6"
                          }
                        ],
                        "id": 3742,
                        "name": "FunctionCall",
                        "src": "2815:26:6"
                      }
                    ],
                    "id": 3743,
                    "name": "ExpressionStatement",
                    "src": "2815:26:6"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 3619,
                              "type": "function (uint256,address)",
                              "value": "SendEther"
                            },
                            "id": 3744,
                            "name": "Identifier",
                            "src": "2851:9:6"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 3729,
                              "type": "uint256",
                              "value": "_amountInWei"
                            },
                            "id": 3745,
                            "name": "Identifier",
                            "src": "2861:12:6"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 3731,
                              "type": "address",
                              "value": "_to"
                            },
                            "id": 3746,
                            "name": "Identifier",
                            "src": "2875:3:6"
                          }
                        ],
                        "id": 3747,
                        "name": "FunctionCall",
                        "src": "2851:28:6"
                      }
                    ],
                    "id": 3748,
                    "name": "ExpressionStatement",
                    "src": "2851:28:6"
                  },
                  {
                    "attributes": {
                      "functionReturnParameters": 3737
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "hexvalue": "74727565",
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "subdenomination": null,
                          "token": "bool",
                          "type": "bool",
                          "value": "true"
                        },
                        "id": 3749,
                        "name": "Literal",
                        "src": "2896:4:6"
                      }
                    ],
                    "id": 3750,
                    "name": "Return",
                    "src": "2889:11:6"
                  }
                ],
                "id": 3751,
                "name": "Block",
                "src": "2805:102:6"
              }
            ],
            "id": 3752,
            "name": "FunctionDefinition",
            "src": "2723:184:6"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": false,
              "name": "externalTokenTransfer",
              "payable": false,
              "scope": 3873,
              "stateMutability": "nonpayable",
              "superFunction": null,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_externalToken",
                      "scope": 3781,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "contract StandardToken",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "contractScope": null,
                          "name": "StandardToken",
                          "referencedDeclaration": 11999,
                          "type": "contract StandardToken"
                        },
                        "id": 3753,
                        "name": "UserDefinedTypeName",
                        "src": "3179:13:6"
                      }
                    ],
                    "id": 3754,
                    "name": "VariableDeclaration",
                    "src": "3179:28:6"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_to",
                      "scope": 3781,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 3755,
                        "name": "ElementaryTypeName",
                        "src": "3209:7:6"
                      }
                    ],
                    "id": 3756,
                    "name": "VariableDeclaration",
                    "src": "3209:11:6"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_value",
                      "scope": 3781,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 3757,
                        "name": "ElementaryTypeName",
                        "src": "3222:4:6"
                      }
                    ],
                    "id": 3758,
                    "name": "VariableDeclaration",
                    "src": "3222:11:6"
                  }
                ],
                "id": 3759,
                "name": "ParameterList",
                "src": "3178:56:6"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 3781,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bool",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bool",
                          "type": "bool"
                        },
                        "id": 3762,
                        "name": "ElementaryTypeName",
                        "src": "3264:4:6"
                      }
                    ],
                    "id": 3763,
                    "name": "VariableDeclaration",
                    "src": "3264:4:6"
                  }
                ],
                "id": 3764,
                "name": "ParameterList",
                "src": "3263:6:6"
              },
              {
                "attributes": {
                  "arguments": [
                    null
                  ]
                },
                "children": [
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 11419,
                      "type": "modifier ()",
                      "value": "onlyOwner"
                    },
                    "id": 3760,
                    "name": "Identifier",
                    "src": "3246:9:6"
                  }
                ],
                "id": 3761,
                "name": "ModifierInvocation",
                "src": "3246:9:6"
              },
              {
                "children": [
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "bool",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "transfer",
                              "referencedDeclaration": 11518,
                              "type": "function (address,uint256) external returns (bool)"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 3754,
                                  "type": "contract StandardToken",
                                  "value": "_externalToken"
                                },
                                "id": 3765,
                                "name": "Identifier",
                                "src": "3284:14:6"
                              }
                            ],
                            "id": 3767,
                            "name": "MemberAccess",
                            "src": "3284:23:6"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 3756,
                              "type": "address",
                              "value": "_to"
                            },
                            "id": 3768,
                            "name": "Identifier",
                            "src": "3308:3:6"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 3758,
                              "type": "uint256",
                              "value": "_value"
                            },
                            "id": 3769,
                            "name": "Identifier",
                            "src": "3313:6:6"
                          }
                        ],
                        "id": 3770,
                        "name": "FunctionCall",
                        "src": "3284:36:6"
                      }
                    ],
                    "id": 3771,
                    "name": "ExpressionStatement",
                    "src": "3284:36:6"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_contract$_StandardToken_$11999",
                                  "typeString": "contract StandardToken"
                                },
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 3627,
                              "type": "function (address,address,uint256)",
                              "value": "ExternalTokenTransfer"
                            },
                            "id": 3772,
                            "name": "Identifier",
                            "src": "3330:21:6"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 3754,
                              "type": "contract StandardToken",
                              "value": "_externalToken"
                            },
                            "id": 3773,
                            "name": "Identifier",
                            "src": "3352:14:6"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 3756,
                              "type": "address",
                              "value": "_to"
                            },
                            "id": 3774,
                            "name": "Identifier",
                            "src": "3368:3:6"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 3758,
                              "type": "uint256",
                              "value": "_value"
                            },
                            "id": 3775,
                            "name": "Identifier",
                            "src": "3373:6:6"
                          }
                        ],
                        "id": 3776,
                        "name": "FunctionCall",
                        "src": "3330:50:6"
                      }
                    ],
                    "id": 3777,
                    "name": "ExpressionStatement",
                    "src": "3330:50:6"
                  },
                  {
                    "attributes": {
                      "functionReturnParameters": 3764
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "hexvalue": "74727565",
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "subdenomination": null,
                          "token": "bool",
                          "type": "bool",
                          "value": "true"
                        },
                        "id": 3778,
                        "name": "Literal",
                        "src": "3397:4:6"
                      }
                    ],
                    "id": 3779,
                    "name": "Return",
                    "src": "3390:11:6"
                  }
                ],
                "id": 3780,
                "name": "Block",
                "src": "3274:134:6"
              }
            ],
            "id": 3781,
            "name": "FunctionDefinition",
            "src": "3148:260:6"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": false,
              "name": "externalTokenTransferFrom",
              "payable": false,
              "scope": 3873,
              "stateMutability": "nonpayable",
              "superFunction": null,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_externalToken",
                      "scope": 3814,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "contract StandardToken",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "contractScope": null,
                          "name": "StandardToken",
                          "referencedDeclaration": 11999,
                          "type": "contract StandardToken"
                        },
                        "id": 3782,
                        "name": "UserDefinedTypeName",
                        "src": "3768:13:6"
                      }
                    ],
                    "id": 3783,
                    "name": "VariableDeclaration",
                    "src": "3768:28:6"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_from",
                      "scope": 3814,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 3784,
                        "name": "ElementaryTypeName",
                        "src": "3806:7:6"
                      }
                    ],
                    "id": 3785,
                    "name": "VariableDeclaration",
                    "src": "3806:13:6"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_to",
                      "scope": 3814,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 3786,
                        "name": "ElementaryTypeName",
                        "src": "3829:7:6"
                      }
                    ],
                    "id": 3787,
                    "name": "VariableDeclaration",
                    "src": "3829:11:6"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_value",
                      "scope": 3814,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 3788,
                        "name": "ElementaryTypeName",
                        "src": "3850:4:6"
                      }
                    ],
                    "id": 3789,
                    "name": "VariableDeclaration",
                    "src": "3850:11:6"
                  }
                ],
                "id": 3790,
                "name": "ParameterList",
                "src": "3758:109:6"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 3814,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bool",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bool",
                          "type": "bool"
                        },
                        "id": 3793,
                        "name": "ElementaryTypeName",
                        "src": "3897:4:6"
                      }
                    ],
                    "id": 3794,
                    "name": "VariableDeclaration",
                    "src": "3897:4:6"
                  }
                ],
                "id": 3795,
                "name": "ParameterList",
                "src": "3896:6:6"
              },
              {
                "attributes": {
                  "arguments": [
                    null
                  ]
                },
                "children": [
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 11419,
                      "type": "modifier ()",
                      "value": "onlyOwner"
                    },
                    "id": 3791,
                    "name": "Identifier",
                    "src": "3879:9:6"
                  }
                ],
                "id": 3792,
                "name": "ModifierInvocation",
                "src": "3879:9:6"
              },
              {
                "children": [
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "bool",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "transferFrom",
                              "referencedDeclaration": 11853,
                              "type": "function (address,address,uint256) external returns (bool)"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 3783,
                                  "type": "contract StandardToken",
                                  "value": "_externalToken"
                                },
                                "id": 3796,
                                "name": "Identifier",
                                "src": "3917:14:6"
                              }
                            ],
                            "id": 3798,
                            "name": "MemberAccess",
                            "src": "3917:27:6"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 3785,
                              "type": "address",
                              "value": "_from"
                            },
                            "id": 3799,
                            "name": "Identifier",
                            "src": "3945:5:6"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 3787,
                              "type": "address",
                              "value": "_to"
                            },
                            "id": 3800,
                            "name": "Identifier",
                            "src": "3952:3:6"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 3789,
                              "type": "uint256",
                              "value": "_value"
                            },
                            "id": 3801,
                            "name": "Identifier",
                            "src": "3957:6:6"
                          }
                        ],
                        "id": 3802,
                        "name": "FunctionCall",
                        "src": "3917:47:6"
                      }
                    ],
                    "id": 3803,
                    "name": "ExpressionStatement",
                    "src": "3917:47:6"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_contract$_StandardToken_$11999",
                                  "typeString": "contract StandardToken"
                                },
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 3637,
                              "type": "function (address,address,address,uint256)",
                              "value": "ExternalTokenTransferFrom"
                            },
                            "id": 3804,
                            "name": "Identifier",
                            "src": "3974:25:6"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 3783,
                              "type": "contract StandardToken",
                              "value": "_externalToken"
                            },
                            "id": 3805,
                            "name": "Identifier",
                            "src": "4000:14:6"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 3785,
                              "type": "address",
                              "value": "_from"
                            },
                            "id": 3806,
                            "name": "Identifier",
                            "src": "4016:5:6"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 3787,
                              "type": "address",
                              "value": "_to"
                            },
                            "id": 3807,
                            "name": "Identifier",
                            "src": "4023:3:6"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 3789,
                              "type": "uint256",
                              "value": "_value"
                            },
                            "id": 3808,
                            "name": "Identifier",
                            "src": "4028:6:6"
                          }
                        ],
                        "id": 3809,
                        "name": "FunctionCall",
                        "src": "3974:61:6"
                      }
                    ],
                    "id": 3810,
                    "name": "ExpressionStatement",
                    "src": "3974:61:6"
                  },
                  {
                    "attributes": {
                      "functionReturnParameters": 3795
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "hexvalue": "74727565",
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "subdenomination": null,
                          "token": "bool",
                          "type": "bool",
                          "value": "true"
                        },
                        "id": 3811,
                        "name": "Literal",
                        "src": "4052:4:6"
                      }
                    ],
                    "id": 3812,
                    "name": "Return",
                    "src": "4045:11:6"
                  }
                ],
                "id": 3813,
                "name": "Block",
                "src": "3907:156:6"
              }
            ],
            "id": 3814,
            "name": "FunctionDefinition",
            "src": "3724:339:6"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": false,
              "name": "externalTokenIncreaseApproval",
              "payable": false,
              "scope": 3873,
              "stateMutability": "nonpayable",
              "superFunction": null,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_externalToken",
                      "scope": 3843,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "contract StandardToken",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "contractScope": null,
                          "name": "StandardToken",
                          "referencedDeclaration": 11999,
                          "type": "contract StandardToken"
                        },
                        "id": 3815,
                        "name": "UserDefinedTypeName",
                        "src": "4478:13:6"
                      }
                    ],
                    "id": 3816,
                    "name": "VariableDeclaration",
                    "src": "4478:28:6"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_spender",
                      "scope": 3843,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 3817,
                        "name": "ElementaryTypeName",
                        "src": "4508:7:6"
                      }
                    ],
                    "id": 3818,
                    "name": "VariableDeclaration",
                    "src": "4508:16:6"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_addedValue",
                      "scope": 3843,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 3819,
                        "name": "ElementaryTypeName",
                        "src": "4526:4:6"
                      }
                    ],
                    "id": 3820,
                    "name": "VariableDeclaration",
                    "src": "4526:16:6"
                  }
                ],
                "id": 3821,
                "name": "ParameterList",
                "src": "4477:66:6"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 3843,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bool",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bool",
                          "type": "bool"
                        },
                        "id": 3824,
                        "name": "ElementaryTypeName",
                        "src": "4573:4:6"
                      }
                    ],
                    "id": 3825,
                    "name": "VariableDeclaration",
                    "src": "4573:4:6"
                  }
                ],
                "id": 3826,
                "name": "ParameterList",
                "src": "4572:6:6"
              },
              {
                "attributes": {
                  "arguments": [
                    null
                  ]
                },
                "children": [
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 11419,
                      "type": "modifier ()",
                      "value": "onlyOwner"
                    },
                    "id": 3822,
                    "name": "Identifier",
                    "src": "4555:9:6"
                  }
                ],
                "id": 3823,
                "name": "ModifierInvocation",
                "src": "4555:9:6"
              },
              {
                "children": [
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "bool",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "increaseApproval",
                              "referencedDeclaration": 11938,
                              "type": "function (address,uint256) external returns (bool)"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 3816,
                                  "type": "contract StandardToken",
                                  "value": "_externalToken"
                                },
                                "id": 3827,
                                "name": "Identifier",
                                "src": "4593:14:6"
                              }
                            ],
                            "id": 3829,
                            "name": "MemberAccess",
                            "src": "4593:31:6"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 3818,
                              "type": "address",
                              "value": "_spender"
                            },
                            "id": 3830,
                            "name": "Identifier",
                            "src": "4625:8:6"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 3820,
                              "type": "uint256",
                              "value": "_addedValue"
                            },
                            "id": 3831,
                            "name": "Identifier",
                            "src": "4635:11:6"
                          }
                        ],
                        "id": 3832,
                        "name": "FunctionCall",
                        "src": "4593:54:6"
                      }
                    ],
                    "id": 3833,
                    "name": "ExpressionStatement",
                    "src": "4593:54:6"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_contract$_StandardToken_$11999",
                                  "typeString": "contract StandardToken"
                                },
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 3645,
                              "type": "function (contract StandardToken,address,uint256)",
                              "value": "ExternalTokenIncreaseApproval"
                            },
                            "id": 3834,
                            "name": "Identifier",
                            "src": "4657:29:6"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 3816,
                              "type": "contract StandardToken",
                              "value": "_externalToken"
                            },
                            "id": 3835,
                            "name": "Identifier",
                            "src": "4687:14:6"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 3818,
                              "type": "address",
                              "value": "_spender"
                            },
                            "id": 3836,
                            "name": "Identifier",
                            "src": "4703:8:6"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 3820,
                              "type": "uint256",
                              "value": "_addedValue"
                            },
                            "id": 3837,
                            "name": "Identifier",
                            "src": "4713:11:6"
                          }
                        ],
                        "id": 3838,
                        "name": "FunctionCall",
                        "src": "4657:68:6"
                      }
                    ],
                    "id": 3839,
                    "name": "ExpressionStatement",
                    "src": "4657:68:6"
                  },
                  {
                    "attributes": {
                      "functionReturnParameters": 3826
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "hexvalue": "74727565",
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "subdenomination": null,
                          "token": "bool",
                          "type": "bool",
                          "value": "true"
                        },
                        "id": 3840,
                        "name": "Literal",
                        "src": "4742:4:6"
                      }
                    ],
                    "id": 3841,
                    "name": "Return",
                    "src": "4735:11:6"
                  }
                ],
                "id": 3842,
                "name": "Block",
                "src": "4583:170:6"
              }
            ],
            "id": 3843,
            "name": "FunctionDefinition",
            "src": "4439:314:6"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": false,
              "name": "externalTokenDecreaseApproval",
              "payable": false,
              "scope": 3873,
              "stateMutability": "nonpayable",
              "superFunction": null,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_externalToken",
                      "scope": 3872,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "contract StandardToken",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "contractScope": null,
                          "name": "StandardToken",
                          "referencedDeclaration": 11999,
                          "type": "contract StandardToken"
                        },
                        "id": 3844,
                        "name": "UserDefinedTypeName",
                        "src": "5173:13:6"
                      }
                    ],
                    "id": 3845,
                    "name": "VariableDeclaration",
                    "src": "5173:28:6"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_spender",
                      "scope": 3872,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 3846,
                        "name": "ElementaryTypeName",
                        "src": "5203:7:6"
                      }
                    ],
                    "id": 3847,
                    "name": "VariableDeclaration",
                    "src": "5203:16:6"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_subtractedValue",
                      "scope": 3872,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 3848,
                        "name": "ElementaryTypeName",
                        "src": "5221:4:6"
                      }
                    ],
                    "id": 3849,
                    "name": "VariableDeclaration",
                    "src": "5221:21:6"
                  }
                ],
                "id": 3850,
                "name": "ParameterList",
                "src": "5172:72:6"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 3872,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bool",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bool",
                          "type": "bool"
                        },
                        "id": 3853,
                        "name": "ElementaryTypeName",
                        "src": "5274:4:6"
                      }
                    ],
                    "id": 3854,
                    "name": "VariableDeclaration",
                    "src": "5274:4:6"
                  }
                ],
                "id": 3855,
                "name": "ParameterList",
                "src": "5273:6:6"
              },
              {
                "attributes": {
                  "arguments": [
                    null
                  ]
                },
                "children": [
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 11419,
                      "type": "modifier ()",
                      "value": "onlyOwner"
                    },
                    "id": 3851,
                    "name": "Identifier",
                    "src": "5256:9:6"
                  }
                ],
                "id": 3852,
                "name": "ModifierInvocation",
                "src": "5256:9:6"
              },
              {
                "children": [
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "bool",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "decreaseApproval",
                              "referencedDeclaration": 11998,
                              "type": "function (address,uint256) external returns (bool)"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 3845,
                                  "type": "contract StandardToken",
                                  "value": "_externalToken"
                                },
                                "id": 3856,
                                "name": "Identifier",
                                "src": "5294:14:6"
                              }
                            ],
                            "id": 3858,
                            "name": "MemberAccess",
                            "src": "5294:31:6"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 3847,
                              "type": "address",
                              "value": "_spender"
                            },
                            "id": 3859,
                            "name": "Identifier",
                            "src": "5326:8:6"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 3849,
                              "type": "uint256",
                              "value": "_subtractedValue"
                            },
                            "id": 3860,
                            "name": "Identifier",
                            "src": "5336:16:6"
                          }
                        ],
                        "id": 3861,
                        "name": "FunctionCall",
                        "src": "5294:59:6"
                      }
                    ],
                    "id": 3862,
                    "name": "ExpressionStatement",
                    "src": "5294:59:6"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_contract$_StandardToken_$11999",
                                  "typeString": "contract StandardToken"
                                },
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 3653,
                              "type": "function (contract StandardToken,address,uint256)",
                              "value": "ExternalTokenDecreaseApproval"
                            },
                            "id": 3863,
                            "name": "Identifier",
                            "src": "5363:29:6"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 3845,
                              "type": "contract StandardToken",
                              "value": "_externalToken"
                            },
                            "id": 3864,
                            "name": "Identifier",
                            "src": "5393:14:6"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 3847,
                              "type": "address",
                              "value": "_spender"
                            },
                            "id": 3865,
                            "name": "Identifier",
                            "src": "5408:8:6"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 3849,
                              "type": "uint256",
                              "value": "_subtractedValue"
                            },
                            "id": 3866,
                            "name": "Identifier",
                            "src": "5418:16:6"
                          }
                        ],
                        "id": 3867,
                        "name": "FunctionCall",
                        "src": "5363:72:6"
                      }
                    ],
                    "id": 3868,
                    "name": "ExpressionStatement",
                    "src": "5363:72:6"
                  },
                  {
                    "attributes": {
                      "functionReturnParameters": 3855
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "hexvalue": "74727565",
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "subdenomination": null,
                          "token": "bool",
                          "type": "bool",
                          "value": "true"
                        },
                        "id": 3869,
                        "name": "Literal",
                        "src": "5452:4:6"
                      }
                    ],
                    "id": 3870,
                    "name": "Return",
                    "src": "5445:11:6"
                  }
                ],
                "id": 3871,
                "name": "Block",
                "src": "5284:179:6"
              }
            ],
            "id": 3872,
            "name": "FunctionDefinition",
            "src": "5134:329:6"
          }
        ],
        "id": 3873,
        "name": "ContractDefinition",
        "src": "401:5065:6"
      }
    ],
    "id": 3874,
    "name": "SourceUnit",
    "src": "0:5467:6"
  },
  "compiler": {
    "name": "solc",
    "version": "0.4.18+commit.9cf6e910.Emscripten.clang"
  },
  "networks": {},
  "schemaVersion": "1.0.1",
  "updatedAt": "2018-02-04T21:57:39.052Z"
}