From 49f1a6933cc22d1e703d631d5b861b8601ca2231 Mon Sep 17 00:00:00 2001
From: Fabio Berger <me@fabioberger.com>
Date: Thu, 12 Jul 2018 23:13:47 +0200
Subject: Add fetchAsync util and RPCSubprovider

---
 packages/subproviders/package.json                 |  1 +
 packages/subproviders/src/globals.d.ts             |  2 +
 packages/subproviders/src/index.ts                 |  1 +
 .../src/subproviders/rpc_subprovider.ts            | 88 ++++++++++++++++++++++
 .../subproviders/src/subproviders/subprovider.ts   | 26 +++----
 packages/types/src/index.ts                        | 12 +++
 packages/utils/package.json                        |  4 +-
 packages/utils/src/fetchAsync.ts                   | 29 +++++++
 packages/utils/src/index.ts                        |  2 +
 yarn.lock                                          |  8 +-
 10 files changed, 154 insertions(+), 19 deletions(-)
 create mode 100644 packages/subproviders/src/subproviders/rpc_subprovider.ts
 create mode 100644 packages/utils/src/fetchAsync.ts

diff --git a/packages/subproviders/package.json b/packages/subproviders/package.json
index bdc846e6b..796d87cf4 100644
--- a/packages/subproviders/package.json
+++ b/packages/subproviders/package.json
@@ -55,6 +55,7 @@
         "ethereumjs-util": "^5.1.1",
         "ganache-core": "0xProject/ganache-core",
         "hdkey": "^0.7.1",
+        "json-rpc-error": "2.0.0",
         "lodash": "^4.17.4",
         "semaphore-async-await": "^1.5.1",
         "web3-provider-engine": "14.0.6"
diff --git a/packages/subproviders/src/globals.d.ts b/packages/subproviders/src/globals.d.ts
index 94e63a32d..6af4c7980 100644
--- a/packages/subproviders/src/globals.d.ts
+++ b/packages/subproviders/src/globals.d.ts
@@ -4,3 +4,5 @@ declare module '*.json' {
     export default json;
     /* tslint:enable */
 }
+
+declare module 'json-rpc-error';
diff --git a/packages/subproviders/src/index.ts b/packages/subproviders/src/index.ts
index 71d643f14..9a5597a06 100644
--- a/packages/subproviders/src/index.ts
+++ b/packages/subproviders/src/index.ts
@@ -10,6 +10,7 @@ export { FakeGasEstimateSubprovider } from './subproviders/fake_gas_estimate_sub
 export { SignerSubprovider } from './subproviders/signer';
 export { RedundantSubprovider } from './subproviders/redundant_subprovider';
 export { LedgerSubprovider } from './subproviders/ledger';
+export { RPCSubprovider } from './subproviders/rpc_subprovider';
 export { GanacheSubprovider } from './subproviders/ganache';
 export { Subprovider } from './subproviders/subprovider';
 export { NonceTrackerSubprovider } from './subproviders/nonce_tracker';
diff --git a/packages/subproviders/src/subproviders/rpc_subprovider.ts b/packages/subproviders/src/subproviders/rpc_subprovider.ts
new file mode 100644
index 000000000..87c522271
--- /dev/null
+++ b/packages/subproviders/src/subproviders/rpc_subprovider.ts
@@ -0,0 +1,88 @@
+import { assert } from '@0xproject/assert';
+import { StatusCodes } from '@0xproject/types';
+import { fetchAsync } from '@0xproject/utils';
+import { JSONRPCRequestPayload } from 'ethereum-types';
+import JsonRpcError = require('json-rpc-error');
+
+import { Callback, ErrorCallback } from '../types';
+
+import { Subprovider } from './subprovider';
+
+/**
+ * This class implements the [web3-provider-engine](https://github.com/MetaMask/provider-engine) subprovider interface.
+ * It forwards on JSON RPC requests to the supplied `rpcUrl` endpoint
+ */
+export class RPCSubprovider extends Subprovider {
+    private _rpcUrl: string;
+    constructor(rpcUrl: string) {
+        super();
+        assert.isString('rpcUrl', rpcUrl);
+        this._rpcUrl = rpcUrl;
+    }
+    /**
+     * This method conforms to the web3-provider-engine interface.
+     * It is called internally by the ProviderEngine when it is this subproviders
+     * turn to handle a JSON RPC request.
+     * @param payload JSON RPC payload
+     * @param next Callback to call if this subprovider decides not to handle the request
+     * @param end Callback to call if subprovider handled the request and wants to pass back the request.
+     */
+    // tslint:disable-next-line:prefer-function-over-method async-suffix
+    public async handleRequest(payload: JSONRPCRequestPayload, next: Callback, end: ErrorCallback): Promise<void> {
+        const finalPayload = Subprovider.createFinalPayload(payload);
+        const headers = new Headers({
+            Accept: 'application/json',
+            'Content-Type': 'application/json',
+        });
+        const timeoutMs = 1000;
+
+        let response;
+        try {
+            response = await fetchAsync(
+                this._rpcUrl,
+                {
+                    method: 'POST',
+                    headers,
+                    body: JSON.stringify(finalPayload),
+                },
+                timeoutMs,
+            );
+        } catch (err) {
+            end(new JsonRpcError.InternalError(err));
+            return;
+        }
+
+        const text = await response.text();
+        if (!response.ok) {
+            const statusCode = response.status;
+            switch (statusCode) {
+                case StatusCodes.MethodNotAllowed:
+                    end(new JsonRpcError.MethodNotFound());
+                    return;
+                case StatusCodes.GatewayTimeout:
+                    const errMsg =
+                        'Gateway timeout. The request took too long to process. This can happen when querying logs over too wide a block range.';
+                    const err = new Error(errMsg);
+                    end(new JsonRpcError.InternalError(err));
+                    return;
+                default:
+                    end(new JsonRpcError.InternalError(text));
+                    return;
+            }
+        }
+
+        let data;
+        try {
+            data = JSON.parse(text);
+        } catch (err) {
+            end(new JsonRpcError.InternalError(err));
+            return;
+        }
+
+        if (data.error) {
+            end(data.error);
+            return;
+        }
+        end(null, data.result);
+    }
+}
diff --git a/packages/subproviders/src/subproviders/subprovider.ts b/packages/subproviders/src/subproviders/subprovider.ts
index ff8378c4e..6f4a8f99e 100644
--- a/packages/subproviders/src/subproviders/subprovider.ts
+++ b/packages/subproviders/src/subproviders/subprovider.ts
@@ -9,18 +9,7 @@ import { Callback, ErrorCallback, JSONRPCRequestPayloadWithMethod } from '../typ
 export abstract class Subprovider {
     // tslint:disable-next-line:underscore-private-and-protected
     private engine!: Provider;
-    // Ported from: https://github.com/MetaMask/provider-engine/blob/master/util/random-id.js
-    private static _getRandomId(): number {
-        const extraDigits = 3;
-        const baseTen = 10;
-        // 13 time digits
-        const datePart = new Date().getTime() * Math.pow(baseTen, extraDigits);
-        // 3 random digits
-        const extraPart = Math.floor(Math.random() * Math.pow(baseTen, extraDigits));
-        // 16 digits
-        return datePart + extraPart;
-    }
-    private static _createFinalPayload(
+    public static createFinalPayload(
         payload: Partial<JSONRPCRequestPayloadWithMethod>,
     ): Partial<JSONRPCRequestPayloadWithMethod> {
         const finalPayload = {
@@ -32,6 +21,17 @@ export abstract class Subprovider {
         };
         return finalPayload;
     }
+    // Ported from: https://github.com/MetaMask/provider-engine/blob/master/util/random-id.js
+    private static _getRandomId(): number {
+        const extraDigits = 3;
+        const baseTen = 10;
+        // 13 time digits
+        const datePart = new Date().getTime() * Math.pow(baseTen, extraDigits);
+        // 3 random digits
+        const extraPart = Math.floor(Math.random() * Math.pow(baseTen, extraDigits));
+        // 16 digits
+        return datePart + extraPart;
+    }
     // tslint:disable-next-line:async-suffix
     public abstract async handleRequest(
         payload: JSONRPCRequestPayload,
@@ -47,7 +47,7 @@ export abstract class Subprovider {
      * @returns JSON RPC response payload
      */
     public async emitPayloadAsync(payload: Partial<JSONRPCRequestPayloadWithMethod>): Promise<JSONRPCResponsePayload> {
-        const finalPayload = Subprovider._createFinalPayload(payload);
+        const finalPayload = Subprovider.createFinalPayload(payload);
         const response = await promisify<JSONRPCResponsePayload>(this.engine.sendAsync, this.engine)(finalPayload);
         return response;
     }
diff --git a/packages/types/src/index.ts b/packages/types/src/index.ts
index 03fa2fe8a..9b1731b9d 100644
--- a/packages/types/src/index.ts
+++ b/packages/types/src/index.ts
@@ -221,3 +221,15 @@ export enum RevertReason {
     ValueGreaterThanZero = 'VALUE_GREATER_THAN_ZERO',
     InvalidMsgValue = 'INVALID_MSG_VALUE',
 }
+
+export enum StatusCodes {
+    Success = 200,
+    NotFound = 404,
+    InternalError = 500,
+    MethodNotAllowed = 405,
+    GatewayTimeout = 504,
+}
+
+export interface FetchRequest extends RequestInit {
+    timeout?: number;
+}
diff --git a/packages/utils/package.json b/packages/utils/package.json
index 9168a3538..cb0989836 100644
--- a/packages/utils/package.json
+++ b/packages/utils/package.json
@@ -35,14 +35,14 @@
         "typescript": "2.7.1"
     },
     "dependencies": {
-        "ethereum-types": "^0.0.2",
+        "@0xproject/types": "^1.0.0",
         "@0xproject/typescript-typings": "^0.4.2",
         "@types/node": "^8.0.53",
-        "ethereumjs-util": "^5.1.1",
         "bignumber.js": "~4.1.0",
         "ethereum-types": "^0.0.2",
         "ethereumjs-util": "^5.1.1",
         "ethers": "3.0.22",
+        "isomorphic-fetch": "^2.2.1",
         "js-sha3": "^0.7.0",
         "lodash": "^4.17.4"
     },
diff --git a/packages/utils/src/fetchAsync.ts b/packages/utils/src/fetchAsync.ts
new file mode 100644
index 000000000..7cb2c1759
--- /dev/null
+++ b/packages/utils/src/fetchAsync.ts
@@ -0,0 +1,29 @@
+import { FetchRequest } from '@0xproject/types';
+import 'isomorphic-fetch';
+
+export const fetchAsync = async (
+    endpoint: string,
+    options: FetchRequest,
+    timeoutMs: number = 20000,
+): Promise<Response> => {
+    let finalOptions;
+    if ((process as any).browser === true) {
+        const controller = new AbortController();
+        const signal = controller.signal;
+        setTimeout(() => {
+            controller.abort();
+        }, timeoutMs);
+        finalOptions = {
+            signal,
+            ...options,
+        };
+    } else {
+        finalOptions = {
+            timeout: timeoutMs,
+            ...options,
+        };
+    }
+
+    const response = await fetch(endpoint, finalOptions);
+    return response;
+};
diff --git a/packages/utils/src/index.ts b/packages/utils/src/index.ts
index fd102cecb..48fd6152e 100644
--- a/packages/utils/src/index.ts
+++ b/packages/utils/src/index.ts
@@ -8,3 +8,5 @@ export { logUtils } from './log_utils';
 export { abiUtils } from './abi_utils';
 export { NULL_BYTES } from './constants';
 export { errorUtils } from './error_utils';
+export { fetchAsync } from './fetchAsync';
+export { FetchRequest } from '@0xproject/types';
diff --git a/yarn.lock b/yarn.lock
index a8a897511..f6b6a32e0 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -4481,9 +4481,9 @@ ethereumjs-wallet@~0.6.0:
     utf8 "^2.1.1"
     uuid "^2.0.1"
 
-ethers@3.0.22:
-  version "3.0.22"
-  resolved "https://registry.yarnpkg.com/ethers/-/ethers-3.0.22.tgz#7fab1ea16521705837aa43c15831877b2716b436"
+ethers@0xproject/ethers.js#eip-838-reasons, ethers@3.0.22:
+  version "3.0.18"
+  resolved "https://codeload.github.com/0xproject/ethers.js/tar.gz/b91342bd200d142af0165d6befddf783c8ae8447"
   dependencies:
     aes-js "3.0.0"
     bn.js "^4.4.0"
@@ -6899,7 +6899,7 @@ json-rpc-engine@^3.4.0, json-rpc-engine@^3.6.0:
     json-rpc-error "^2.0.0"
     promise-to-callback "^1.0.0"
 
-json-rpc-error@^2.0.0:
+json-rpc-error@2.0.0, json-rpc-error@^2.0.0:
   version "2.0.0"
   resolved "https://registry.yarnpkg.com/json-rpc-error/-/json-rpc-error-2.0.0.tgz#a7af9c202838b5e905c7250e547f1aff77258a02"
   dependencies:
-- 
cgit v1.2.3


From c2a1317c3813b13353eb84e4255284fe99ff8e6c Mon Sep 17 00:00:00 2001
From: Fabio Berger <me@fabioberger.com>
Date: Thu, 12 Jul 2018 23:17:35 +0200
Subject: Adjust timeout

---
 packages/subproviders/src/subproviders/rpc_subprovider.ts | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/packages/subproviders/src/subproviders/rpc_subprovider.ts b/packages/subproviders/src/subproviders/rpc_subprovider.ts
index 87c522271..0fb99f87a 100644
--- a/packages/subproviders/src/subproviders/rpc_subprovider.ts
+++ b/packages/subproviders/src/subproviders/rpc_subprovider.ts
@@ -34,8 +34,10 @@ export class RPCSubprovider extends Subprovider {
             Accept: 'application/json',
             'Content-Type': 'application/json',
         });
-        const timeoutMs = 1000;
 
+        // Since Ethereum nodes have a proclivity for accepting requests and never
+        // returning a response, we set this quite low (10 seconds).
+        const timeoutMs = 10000;
         let response;
         try {
             response = await fetchAsync(
-- 
cgit v1.2.3


From 1229c61ba420b280708b39c04cc21f31e43ed3cf Mon Sep 17 00:00:00 2001
From: Fabio Berger <me@fabioberger.com>
Date: Fri, 13 Jul 2018 12:05:02 +0200
Subject: Make timeout configurable on RPCSubprovider

---
 packages/subproviders/src/subproviders/rpc_subprovider.ts | 9 ++++-----
 1 file changed, 4 insertions(+), 5 deletions(-)

diff --git a/packages/subproviders/src/subproviders/rpc_subprovider.ts b/packages/subproviders/src/subproviders/rpc_subprovider.ts
index 0fb99f87a..5c1c3272c 100644
--- a/packages/subproviders/src/subproviders/rpc_subprovider.ts
+++ b/packages/subproviders/src/subproviders/rpc_subprovider.ts
@@ -14,10 +14,12 @@ import { Subprovider } from './subprovider';
  */
 export class RPCSubprovider extends Subprovider {
     private _rpcUrl: string;
-    constructor(rpcUrl: string) {
+    private _requestTimeoutMs: number;
+    constructor(rpcUrl: string, requestTimeoutMs: number = 20000) {
         super();
         assert.isString('rpcUrl', rpcUrl);
         this._rpcUrl = rpcUrl;
+        this._requestTimeoutMs = requestTimeoutMs;
     }
     /**
      * This method conforms to the web3-provider-engine interface.
@@ -35,9 +37,6 @@ export class RPCSubprovider extends Subprovider {
             'Content-Type': 'application/json',
         });
 
-        // Since Ethereum nodes have a proclivity for accepting requests and never
-        // returning a response, we set this quite low (10 seconds).
-        const timeoutMs = 10000;
         let response;
         try {
             response = await fetchAsync(
@@ -47,7 +46,7 @@ export class RPCSubprovider extends Subprovider {
                     headers,
                     body: JSON.stringify(finalPayload),
                 },
-                timeoutMs,
+                this._requestTimeoutMs,
             );
         } catch (err) {
             end(new JsonRpcError.InternalError(err));
-- 
cgit v1.2.3


From 2e5ff53d7271509accc226e83d76d1785350b1d2 Mon Sep 17 00:00:00 2001
From: Fabio Berger <me@fabioberger.com>
Date: Fri, 13 Jul 2018 12:42:01 +0200
Subject: -fetch';

---
 packages/connect/src/http_client.ts                      |  4 ++--
 packages/dev-utils/src/web3_factory.ts                   | 14 +++++++-------
 packages/metacoin/test/utils/web3_wrapper.ts             |  5 ++---
 packages/migrations/src/utils/provider_factory.ts        |  9 ++-------
 packages/sol-compiler/package.json                       |  1 -
 packages/sol-compiler/src/compiler.ts                    |  5 ++---
 .../test/integration/ledger_subprovider_test.ts          |  7 ++-----
 .../test/unit/redundant_rpc_subprovider_test.ts          |  7 ++-----
 packages/testnet-faucets/src/ts/handler.ts               |  9 ++-------
 packages/types/src/index.ts                              |  4 ----
 packages/utils/src/fetchAsync.ts                         | 16 +++++++++-------
 packages/utils/src/index.ts                              |  1 -
 packages/website/package.json                            |  1 -
 packages/website/ts/blockchain.ts                        | 14 ++++----------
 packages/website/ts/components/order_json.tsx            |  4 ++--
 packages/website/ts/components/token_balances.tsx        |  4 ++--
 packages/website/ts/index.tsx                            |  1 -
 packages/website/ts/utils/doc_utils.ts                   |  6 +++---
 packages/website/ts/utils/fetch_utils.ts                 |  6 +++---
 yarn.lock                                                |  2 +-
 20 files changed, 45 insertions(+), 75 deletions(-)

diff --git a/packages/connect/src/http_client.ts b/packages/connect/src/http_client.ts
index f6503835a..f3800d581 100644
--- a/packages/connect/src/http_client.ts
+++ b/packages/connect/src/http_client.ts
@@ -1,7 +1,7 @@
 import { assert } from '@0xproject/assert';
 import { schemas } from '@0xproject/json-schemas';
 import { SignedOrder } from '@0xproject/types';
-import 'isomorphic-fetch';
+import { fetchAsync } from '@0xproject/utils';
 import * as _ from 'lodash';
 import * as queryString from 'query-string';
 
@@ -167,7 +167,7 @@ export class HttpClient implements Client {
         const headers = new Headers({
             'content-type': 'application/json',
         });
-        const response = await fetch(url, {
+        const response = await fetchAsync(url, {
             method: requestType,
             body: JSON.stringify(payload),
             headers,
diff --git a/packages/dev-utils/src/web3_factory.ts b/packages/dev-utils/src/web3_factory.ts
index 362a6c3c6..67112d410 100644
--- a/packages/dev-utils/src/web3_factory.ts
+++ b/packages/dev-utils/src/web3_factory.ts
@@ -1,7 +1,11 @@
 import ProviderEngine = require('web3-provider-engine');
-import RpcSubprovider = require('web3-provider-engine/subproviders/rpc');
 
-import { EmptyWalletSubprovider, FakeGasEstimateSubprovider, GanacheSubprovider } from '@0xproject/subproviders';
+import {
+    EmptyWalletSubprovider,
+    FakeGasEstimateSubprovider,
+    GanacheSubprovider,
+    RPCSubprovider,
+} from '@0xproject/subproviders';
 import * as fs from 'fs';
 import * as _ from 'lodash';
 
@@ -49,11 +53,7 @@ export const web3Factory = {
                 }),
             );
         } else {
-            provider.addProvider(
-                new RpcSubprovider({
-                    rpcUrl: config.rpcUrl || constants.RPC_URL,
-                }),
-            );
+            provider.addProvider(new RPCSubprovider(config.rpcUrl || constants.RPC_URL));
         }
         provider.start();
         return provider;
diff --git a/packages/metacoin/test/utils/web3_wrapper.ts b/packages/metacoin/test/utils/web3_wrapper.ts
index d3655cb6a..a3956e661 100644
--- a/packages/metacoin/test/utils/web3_wrapper.ts
+++ b/packages/metacoin/test/utils/web3_wrapper.ts
@@ -1,10 +1,9 @@
 import { env, EnvVars } from '@0xproject/dev-utils';
-import { GanacheSubprovider, prependSubprovider } from '@0xproject/subproviders';
+import { GanacheSubprovider, prependSubprovider, RPCSubprovider } from '@0xproject/subproviders';
 import { errorUtils, logUtils } from '@0xproject/utils';
 import { Web3Wrapper } from '@0xproject/web3-wrapper';
 import * as fs from 'fs';
 import ProviderEngine = require('web3-provider-engine');
-import RpcSubprovider = require('web3-provider-engine/subproviders/rpc');
 
 import { config } from './config';
 import { coverage } from './coverage';
@@ -45,7 +44,7 @@ if (testProvider === ProviderType.Ganache) {
         }),
     );
 } else {
-    provider.addProvider(new RpcSubprovider({ rpcUrl: 'http://localhost:8501' }));
+    provider.addProvider(new RPCSubprovider('http://localhost:8501'));
 }
 provider.start();
 
diff --git a/packages/migrations/src/utils/provider_factory.ts b/packages/migrations/src/utils/provider_factory.ts
index 7a217b1e0..cf95cb576 100644
--- a/packages/migrations/src/utils/provider_factory.ts
+++ b/packages/migrations/src/utils/provider_factory.ts
@@ -1,10 +1,9 @@
-import { LedgerEthereumClient, LedgerSubprovider } from '@0xproject/subproviders';
+import { LedgerEthereumClient, LedgerSubprovider, RPCSubprovider } from '@0xproject/subproviders';
 import Eth from '@ledgerhq/hw-app-eth';
 // tslint:disable:no-implicit-dependencies
 import TransportNodeHid from '@ledgerhq/hw-transport-node-hid';
 import { Provider } from 'ethereum-types';
 import ProviderEngine = require('web3-provider-engine');
-import RpcSubprovider = require('web3-provider-engine/subproviders/rpc');
 
 import { constants } from './constants';
 
@@ -22,11 +21,7 @@ export const providerFactory = {
         };
         const ledgerSubprovider = new LedgerSubprovider(ledgerWalletConfigs);
         provider.addProvider(ledgerSubprovider);
-        provider.addProvider(
-            new RpcSubprovider({
-                rpcUrl: constants.RPC_URL,
-            }),
-        );
+        provider.addProvider(new RPCSubprovider(constants.RPC_URL));
         provider.start();
         return provider;
     },
diff --git a/packages/sol-compiler/package.json b/packages/sol-compiler/package.json
index e738ab56b..8460420ad 100644
--- a/packages/sol-compiler/package.json
+++ b/packages/sol-compiler/package.json
@@ -87,7 +87,6 @@
         "ethereum-types": "^0.0.2",
         "chalk": "^2.3.0",
         "ethereumjs-util": "^5.1.1",
-        "isomorphic-fetch": "^2.2.1",
         "lodash": "^4.17.4",
         "mkdirp": "^0.5.1",
         "require-from-string": "^2.0.1",
diff --git a/packages/sol-compiler/src/compiler.ts b/packages/sol-compiler/src/compiler.ts
index bb701a8ce..e61c606be 100644
--- a/packages/sol-compiler/src/compiler.ts
+++ b/packages/sol-compiler/src/compiler.ts
@@ -8,11 +8,10 @@ import {
     Resolver,
     URLResolver,
 } from '@0xproject/sol-resolver';
-import { logUtils } from '@0xproject/utils';
+import { fetchAsync, logUtils } from '@0xproject/utils';
 import chalk from 'chalk';
 import * as ethUtil from 'ethereumjs-util';
 import * as fs from 'fs';
-import 'isomorphic-fetch';
 import * as _ from 'lodash';
 import * as path from 'path';
 import * as requireFromString from 'require-from-string';
@@ -149,7 +148,7 @@ export class Compiler {
         } else {
             logUtils.log(`Downloading ${fullSolcVersion}...`);
             const url = `${constants.BASE_COMPILER_URL}${fullSolcVersion}`;
-            const response = await fetch(url);
+            const response = await fetchAsync(url);
             const SUCCESS_STATUS = 200;
             if (response.status !== SUCCESS_STATUS) {
                 throw new Error(`Failed to load ${fullSolcVersion}`);
diff --git a/packages/subproviders/test/integration/ledger_subprovider_test.ts b/packages/subproviders/test/integration/ledger_subprovider_test.ts
index 196cecf32..e5233fdbc 100644
--- a/packages/subproviders/test/integration/ledger_subprovider_test.ts
+++ b/packages/subproviders/test/integration/ledger_subprovider_test.ts
@@ -8,9 +8,8 @@ import * as chai from 'chai';
 import { JSONRPCResponsePayload } from 'ethereum-types';
 import * as ethUtils from 'ethereumjs-util';
 import Web3ProviderEngine = require('web3-provider-engine');
-import RpcSubprovider = require('web3-provider-engine/subproviders/rpc');
 
-import { LedgerSubprovider } from '../../src';
+import { LedgerSubprovider, RPCSubprovider } from '../../src';
 import { LedgerEthereumClient } from '../../src/types';
 import { chaiSetup } from '../chai_setup';
 import { fixtureData } from '../utils/fixture_data';
@@ -86,9 +85,7 @@ describe('LedgerSubprovider', () => {
         before(() => {
             ledgerProvider = new Web3ProviderEngine();
             ledgerProvider.addProvider(ledgerSubprovider);
-            const httpProvider = new RpcSubprovider({
-                rpcUrl: 'http://localhost:8545',
-            });
+            const httpProvider = new RPCSubprovider('http://localhost:8545');
             ledgerProvider.addProvider(httpProvider);
             ledgerProvider.start();
 
diff --git a/packages/subproviders/test/unit/redundant_rpc_subprovider_test.ts b/packages/subproviders/test/unit/redundant_rpc_subprovider_test.ts
index 810fb8f45..e3f204b15 100644
--- a/packages/subproviders/test/unit/redundant_rpc_subprovider_test.ts
+++ b/packages/subproviders/test/unit/redundant_rpc_subprovider_test.ts
@@ -3,9 +3,8 @@ import * as chai from 'chai';
 import { JSONRPCResponsePayload } from 'ethereum-types';
 import * as Sinon from 'sinon';
 import Web3ProviderEngine = require('web3-provider-engine');
-import RpcSubprovider = require('web3-provider-engine/subproviders/rpc');
 
-import { RedundantSubprovider } from '../../src';
+import { RedundantSubprovider, RPCSubprovider } from '../../src';
 import { Subprovider } from '../../src/subproviders/subprovider';
 import { chaiSetup } from '../chai_setup';
 import { ganacheSubprovider } from '../utils/ganache_subprovider';
@@ -39,9 +38,7 @@ describe('RedundantSubprovider', () => {
     });
     it('succeeds when supplied at least one healthy endpoint', (done: DoneCallback) => {
         provider = new Web3ProviderEngine();
-        const nonExistentSubprovider = new RpcSubprovider({
-            rpcUrl: 'http://does-not-exist:3000',
-        });
+        const nonExistentSubprovider = new RPCSubprovider('http://does-not-exist:3000');
         const handleRequestStub = Sinon.stub(nonExistentSubprovider, 'handleRequest').throws(
             new Error('REQUEST_FAILED'),
         );
diff --git a/packages/testnet-faucets/src/ts/handler.ts b/packages/testnet-faucets/src/ts/handler.ts
index 6d26691d6..a725a35f5 100644
--- a/packages/testnet-faucets/src/ts/handler.ts
+++ b/packages/testnet-faucets/src/ts/handler.ts
@@ -5,9 +5,8 @@ import { Provider } from 'ethereum-types';
 import * as express from 'express';
 import * as _ from 'lodash';
 
-import { NonceTrackerSubprovider, PrivateKeyWalletSubprovider } from '@0xproject/subproviders';
+import { NonceTrackerSubprovider, PrivateKeyWalletSubprovider, RPCSubprovider } from '@0xproject/subproviders';
 import ProviderEngine = require('web3-provider-engine');
-import RpcSubprovider = require('web3-provider-engine/subproviders/rpc');
 
 import { configs } from './configs';
 import { constants } from './constants';
@@ -42,11 +41,7 @@ export class Handler {
         const engine = new ProviderEngine();
         engine.addProvider(new NonceTrackerSubprovider());
         engine.addProvider(new PrivateKeyWalletSubprovider(configs.DISPENSER_PRIVATE_KEY));
-        engine.addProvider(
-            new RpcSubprovider({
-                rpcUrl,
-            }),
-        );
+        engine.addProvider(new RPCSubprovider(rpcUrl));
         engine.start();
         return engine;
     }
diff --git a/packages/types/src/index.ts b/packages/types/src/index.ts
index 9b1731b9d..72e2a726b 100644
--- a/packages/types/src/index.ts
+++ b/packages/types/src/index.ts
@@ -229,7 +229,3 @@ export enum StatusCodes {
     MethodNotAllowed = 405,
     GatewayTimeout = 504,
 }
-
-export interface FetchRequest extends RequestInit {
-    timeout?: number;
-}
diff --git a/packages/utils/src/fetchAsync.ts b/packages/utils/src/fetchAsync.ts
index 7cb2c1759..a009f0c86 100644
--- a/packages/utils/src/fetchAsync.ts
+++ b/packages/utils/src/fetchAsync.ts
@@ -1,29 +1,31 @@
-import { FetchRequest } from '@0xproject/types';
 import 'isomorphic-fetch';
 
 export const fetchAsync = async (
     endpoint: string,
-    options: FetchRequest,
+    options: RequestInit = {},
     timeoutMs: number = 20000,
 ): Promise<Response> => {
-    let finalOptions;
+    let optionsWithAbortParam;
     if ((process as any).browser === true) {
         const controller = new AbortController();
         const signal = controller.signal;
         setTimeout(() => {
             controller.abort();
         }, timeoutMs);
-        finalOptions = {
+        optionsWithAbortParam = {
             signal,
             ...options,
         };
     } else {
-        finalOptions = {
+        // HACK: the `timeout` param only exists in `node-fetch`, and not on the `isomorphic-fetch`
+        // `RequestInit` type. Since `isomorphic-fetch` conditionally wraps `node-fetch` when the
+        // execution environment is `Node.js`, we need to cast it to `any` in that scenario.
+        optionsWithAbortParam = {
             timeout: timeoutMs,
             ...options,
-        };
+        } as any;
     }
 
-    const response = await fetch(endpoint, finalOptions);
+    const response = await fetch(endpoint, optionsWithAbortParam);
     return response;
 };
diff --git a/packages/utils/src/index.ts b/packages/utils/src/index.ts
index 48fd6152e..b8e0b1775 100644
--- a/packages/utils/src/index.ts
+++ b/packages/utils/src/index.ts
@@ -9,4 +9,3 @@ export { abiUtils } from './abi_utils';
 export { NULL_BYTES } from './constants';
 export { errorUtils } from './error_utils';
 export { fetchAsync } from './fetchAsync';
-export { FetchRequest } from '@0xproject/types';
diff --git a/packages/website/package.json b/packages/website/package.json
index b5b4b6119..2d054693b 100644
--- a/packages/website/package.json
+++ b/packages/website/package.json
@@ -63,7 +63,6 @@
         "thenby": "^1.2.3",
         "truffle-contract": "2.0.1",
         "web3-provider-engine": "14.0.6",
-        "whatwg-fetch": "^2.0.3",
         "xml-js": "^1.6.4"
     },
     "devDependencies": {
diff --git a/packages/website/ts/blockchain.ts b/packages/website/ts/blockchain.ts
index 0e6698318..31d8ba2d6 100644
--- a/packages/website/ts/blockchain.ts
+++ b/packages/website/ts/blockchain.ts
@@ -15,6 +15,7 @@ import {
     ledgerEthereumBrowserClientFactoryAsync,
     LedgerSubprovider,
     RedundantSubprovider,
+    RPCSubprovider,
     SignerSubprovider,
     Subprovider,
 } from '@0xproject/subproviders';
@@ -62,7 +63,6 @@ import { errorReporter } from 'ts/utils/error_reporter';
 import { utils } from 'ts/utils/utils';
 import ProviderEngine = require('web3-provider-engine');
 import FilterSubprovider = require('web3-provider-engine/subproviders/filters');
-import RpcSubprovider = require('web3-provider-engine/subproviders/rpc');
 
 import * as MintableArtifacts from '../contracts/Mintable.json';
 
@@ -157,9 +157,7 @@ export class Blockchain {
             provider.addProvider(ledgerSubprovider);
             provider.addProvider(new FilterSubprovider());
             const rpcSubproviders = _.map(configs.PUBLIC_NODE_URLS_BY_NETWORK_ID[networkIdIfExists], publicNodeUrl => {
-                return new RpcSubprovider({
-                    rpcUrl: publicNodeUrl,
-                });
+                return new RPCSubprovider(publicNodeUrl);
             });
             provider.addProvider(new RedundantSubprovider(rpcSubproviders as Subprovider[]));
             provider.start();
@@ -171,9 +169,7 @@ export class Blockchain {
             provider.addProvider(new SignerSubprovider(injectedWeb3.currentProvider));
             provider.addProvider(new FilterSubprovider());
             const rpcSubproviders = _.map(publicNodeUrlsIfExistsForNetworkId, publicNodeUrl => {
-                return new RpcSubprovider({
-                    rpcUrl: publicNodeUrl,
-                });
+                return new RPCSubprovider(publicNodeUrl);
             });
             provider.addProvider(new RedundantSubprovider(rpcSubproviders as Subprovider[]));
             provider.start();
@@ -189,9 +185,7 @@ export class Blockchain {
             provider.addProvider(new FilterSubprovider());
             const networkId = constants.NETWORK_ID_MAINNET;
             const rpcSubproviders = _.map(configs.PUBLIC_NODE_URLS_BY_NETWORK_ID[networkId], publicNodeUrl => {
-                return new RpcSubprovider({
-                    rpcUrl: publicNodeUrl,
-                });
+                return new RPCSubprovider(publicNodeUrl);
             });
             provider.addProvider(new RedundantSubprovider(rpcSubproviders as Subprovider[]));
             provider.start();
diff --git a/packages/website/ts/components/order_json.tsx b/packages/website/ts/components/order_json.tsx
index 35188c024..7a732de6a 100644
--- a/packages/website/ts/components/order_json.tsx
+++ b/packages/website/ts/components/order_json.tsx
@@ -1,5 +1,5 @@
 import { ECSignature } from '@0xproject/types';
-import { BigNumber, logUtils } from '@0xproject/utils';
+import { BigNumber, fetchAsync, logUtils } from '@0xproject/utils';
 import * as _ from 'lodash';
 import Paper from 'material-ui/Paper';
 import TextField from 'material-ui/TextField';
@@ -148,7 +148,7 @@ You can see and fill it here: ${this.state.shareLink}`);
         const bitlyRequestUrl = `${constants.URL_BITLY_API}/v3/shorten?access_token=${
             configs.BITLY_ACCESS_TOKEN
         }&longUrl=${longUrl}`;
-        const response = await fetch(bitlyRequestUrl);
+        const response = await fetchAsync(bitlyRequestUrl);
         const responseBody = await response.text();
         const bodyObj = JSON.parse(responseBody);
         if (response.status !== 200 || bodyObj.status_code !== 200) {
diff --git a/packages/website/ts/components/token_balances.tsx b/packages/website/ts/components/token_balances.tsx
index 3fae83c00..1f2dfccb0 100644
--- a/packages/website/ts/components/token_balances.tsx
+++ b/packages/website/ts/components/token_balances.tsx
@@ -5,7 +5,7 @@ import {
     Styles,
     utils as sharedUtils,
 } from '@0xproject/react-shared';
-import { BigNumber, errorUtils, logUtils } from '@0xproject/utils';
+import { BigNumber, errorUtils, fetchAsync, logUtils } from '@0xproject/utils';
 import { Web3Wrapper } from '@0xproject/web3-wrapper';
 import * as _ from 'lodash';
 import Dialog from 'material-ui/Dialog';
@@ -548,7 +548,7 @@ export class TokenBalances extends React.Component<TokenBalancesProps, TokenBala
         await utils.sleepAsync(ARTIFICIAL_FAUCET_REQUEST_DELAY);
 
         const segment = isEtherRequest ? 'ether' : 'zrx';
-        const response = await fetch(
+        const response = await fetchAsync(
             `${constants.URL_TESTNET_FAUCET}/${segment}/${this.props.userAddress}?networkId=${this.props.networkId}`,
         );
         const responseBody = await response.text();
diff --git a/packages/website/ts/index.tsx b/packages/website/ts/index.tsx
index c7ccfdf1f..b1f940512 100644
--- a/packages/website/ts/index.tsx
+++ b/packages/website/ts/index.tsx
@@ -20,7 +20,6 @@ import { analytics } from 'ts/utils/analytics';
 import { muiTheme } from 'ts/utils/mui_theme';
 import { utils } from 'ts/utils/utils';
 // Polyfills
-import 'whatwg-fetch';
 injectTapEventPlugin();
 
 // Check if we've introduced an update that requires us to clear the tradeHistory local storage entries
diff --git a/packages/website/ts/utils/doc_utils.ts b/packages/website/ts/utils/doc_utils.ts
index 7768835fb..1627b9b0c 100644
--- a/packages/website/ts/utils/doc_utils.ts
+++ b/packages/website/ts/utils/doc_utils.ts
@@ -1,5 +1,5 @@
 import { DoxityDocObj, TypeDocNode } from '@0xproject/react-docs';
-import { logUtils } from '@0xproject/utils';
+import { fetchAsync, logUtils } from '@0xproject/utils';
 import findVersions = require('find-versions');
 import * as _ from 'lodash';
 import { S3FileObject, VersionToFilePath } from 'ts/types';
@@ -16,7 +16,7 @@ export const docUtils = {
         return versionToFilePath;
     },
     async getVersionFileNamesAsync(s3DocJsonRoot: string, folderName: string): Promise<string[]> {
-        const response = await fetch(s3DocJsonRoot);
+        const response = await fetchAsync(s3DocJsonRoot);
         if (response.status !== 200) {
             // TODO: Show the user an error message when the docs fail to load
             const errMsg = await response.text();
@@ -73,7 +73,7 @@ export const docUtils = {
     },
     async getJSONDocFileAsync(filePath: string, s3DocJsonRoot: string): Promise<TypeDocNode | DoxityDocObj> {
         const endpoint = `${s3DocJsonRoot}/${filePath}`;
-        const response = await fetch(endpoint);
+        const response = await fetchAsync(endpoint);
         if (response.status !== 200) {
             // TODO: Show the user an error message when the docs fail to load
             const errMsg = await response.text();
diff --git a/packages/website/ts/utils/fetch_utils.ts b/packages/website/ts/utils/fetch_utils.ts
index 513f7e479..f159e3180 100644
--- a/packages/website/ts/utils/fetch_utils.ts
+++ b/packages/website/ts/utils/fetch_utils.ts
@@ -1,4 +1,4 @@
-import { logUtils } from '@0xproject/utils';
+import { fetchAsync, logUtils } from '@0xproject/utils';
 import * as _ from 'lodash';
 import * as queryString from 'query-string';
 
@@ -19,14 +19,14 @@ export const fetchUtils = {
     async requestAsync(baseUrl: string, path: string, queryParams?: object): Promise<any> {
         const query = queryStringFromQueryParams(queryParams);
         const url = `${baseUrl}${path}${query}`;
-        const response = await fetch(url);
+        const response = await fetchAsync(url);
         logErrorIfPresent(response, url);
         const result = await response.json();
         return result;
     },
     async postAsync(baseUrl: string, path: string, body: object): Promise<Response> {
         const url = `${baseUrl}${path}`;
-        const response = await fetch(url, {
+        const response = await fetchAsync(url, {
             method: 'POST',
             headers: {
                 'Content-Type': 'application/json',
diff --git a/yarn.lock b/yarn.lock
index f6b6a32e0..53fd5f184 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -13270,7 +13270,7 @@ websocket@^1.0.24, websocket@^1.0.25:
     typedarray-to-buffer "^3.1.2"
     yaeti "^0.0.6"
 
-whatwg-fetch@2.0.3, whatwg-fetch@>=0.10.0, whatwg-fetch@^2.0.3:
+whatwg-fetch@2.0.3, whatwg-fetch@>=0.10.0:
   version "2.0.3"
   resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-2.0.3.tgz#9c84ec2dcf68187ff00bc64e1274b442176e1c84"
 
-- 
cgit v1.2.3


From 701ea5c46bb1d25ffc2e6962042ba3e0c0277454 Mon Sep 17 00:00:00 2001
From: Fabio Berger <me@fabioberger.com>
Date: Fri, 13 Jul 2018 13:05:21 +0200
Subject: Add typedoc for json-rpc-error package

---
 packages/subproviders/src/globals.d.ts | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/packages/subproviders/src/globals.d.ts b/packages/subproviders/src/globals.d.ts
index 6af4c7980..837ed287d 100644
--- a/packages/subproviders/src/globals.d.ts
+++ b/packages/subproviders/src/globals.d.ts
@@ -5,4 +5,12 @@ declare module '*.json' {
     /* tslint:enable */
 }
 
-declare module 'json-rpc-error';
+// TODO: Move this to `typescript-typings` once it is more fleshed out
+declare module 'json-rpc-error' {
+    export class InternalError extends Error {
+        constructor(err: Error | string);
+    }
+    export class MethodNotFound extends Error {
+        constructor();
+    }
+}
-- 
cgit v1.2.3


From 6ce662c7a4d04540920bc2a11a376c71bc051bb0 Mon Sep 17 00:00:00 2001
From: Fabio Berger <me@fabioberger.com>
Date: Fri, 13 Jul 2018 13:05:38 +0200
Subject: Update deps

---
 packages/connect/package.json         |  1 -
 packages/testnet-faucets/package.json |  2 +-
 yarn.lock                             | 37 ++++++++++++++++++++++++++++++++++-
 3 files changed, 37 insertions(+), 3 deletions(-)

diff --git a/packages/connect/package.json b/packages/connect/package.json
index cc68d34f4..343df4031 100644
--- a/packages/connect/package.json
+++ b/packages/connect/package.json
@@ -56,7 +56,6 @@
         "@0xproject/types": "^0.8.2",
         "@0xproject/typescript-typings": "^0.4.2",
         "@0xproject/utils": "^0.7.2",
-        "isomorphic-fetch": "^2.2.1",
         "lodash": "^4.17.4",
         "query-string": "^5.0.1",
         "sinon": "^4.0.0",
diff --git a/packages/testnet-faucets/package.json b/packages/testnet-faucets/package.json
index 72ab8f61b..2aea0a47b 100644
--- a/packages/testnet-faucets/package.json
+++ b/packages/testnet-faucets/package.json
@@ -18,7 +18,7 @@
     "author": "Fabio Berger",
     "license": "Apache-2.0",
     "dependencies": {
-        "0x.js": "^0.38.0",
+        "0x.js": "0.38.4",
         "@0xproject/subproviders": "^0.10.5",
         "@0xproject/web3-wrapper": "^0.7.2",
         "@0xproject/typescript-typings": "^0.4.2",
diff --git a/yarn.lock b/yarn.lock
index 53fd5f184..f2eba5d47 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -2,6 +2,23 @@
 # yarn lockfile v1
 
 
+"0x.js@0.38.4":
+  version "0.38.4"
+  resolved "https://registry.yarnpkg.com/0x.js/-/0x.js-0.38.4.tgz#735c12d3b8d68945caab87990e6cdd24bf5bc070"
+  dependencies:
+    "@0xproject/assert" "^0.2.12"
+    "@0xproject/base-contract" "^0.3.4"
+    "@0xproject/contract-wrappers" "^0.0.5"
+    "@0xproject/order-utils" "^0.0.7"
+    "@0xproject/order-watcher" "^0.0.6"
+    "@0xproject/sol-compiler" "^0.5.2"
+    "@0xproject/types" "^0.8.1"
+    "@0xproject/typescript-typings" "^0.4.1"
+    "@0xproject/utils" "^0.7.1"
+    "@0xproject/web3-wrapper" "^0.7.1"
+    ethers "3.0.22"
+    lodash "4.17.10"
+
 "8fold-marked@0.3.9":
   version "0.3.9"
   resolved "https://registry.yarnpkg.com/8fold-marked/-/8fold-marked-0.3.9.tgz#bb89c645612f8ccfaffac1ca6e3c11f168c9cf59"
@@ -122,6 +139,24 @@
     ethereumjs-util "5.1.5"
     lodash "4.17.10"
 
+"@0xproject/order-watcher@^0.0.6":
+  version "0.0.6"
+  resolved "https://registry.yarnpkg.com/@0xproject/order-watcher/-/order-watcher-0.0.6.tgz#85a8fb21e5755bb555f427b12d64d10b89b332e6"
+  dependencies:
+    "@0xproject/assert" "^0.2.12"
+    "@0xproject/base-contract" "^0.3.4"
+    "@0xproject/contract-wrappers" "^0.0.5"
+    "@0xproject/fill-scenarios" "^0.0.4"
+    "@0xproject/json-schemas" "^0.8.1"
+    "@0xproject/order-utils" "^0.0.7"
+    "@0xproject/types" "^0.8.1"
+    "@0xproject/typescript-typings" "^0.4.1"
+    "@0xproject/utils" "^0.7.1"
+    "@0xproject/web3-wrapper" "^0.7.1"
+    bintrees "1.0.2"
+    ethers "3.0.22"
+    lodash "4.17.10"
+
 "@0xproject/types@^0.5.0":
   version "0.5.0"
   resolved "https://registry.yarnpkg.com/@0xproject/types/-/types-0.5.0.tgz#ba3cfbc11a8c6344b57c9680aa7df2ea84b9bf05"
@@ -1834,7 +1869,7 @@ bindings@^1.2.1, bindings@^1.3.0:
   version "1.3.0"
   resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.3.0.tgz#b346f6ecf6a95f5a815c5839fc7cdb22502f1ed7"
 
-bintrees@^1.0.2:
+bintrees@1.0.2, bintrees@^1.0.2:
   version "1.0.2"
   resolved "https://registry.yarnpkg.com/bintrees/-/bintrees-1.0.2.tgz#49f896d6e858a4a499df85c38fb399b9aff840f8"
 
-- 
cgit v1.2.3


From 512502ca0873a290accb53777ca9d93f8d28e84b Mon Sep 17 00:00:00 2001
From: Fabio Berger <me@fabioberger.com>
Date: Fri, 13 Jul 2018 14:26:02 +0200
Subject: Export Web3ProviderEngine from subproviders package

---
 packages/contract-wrappers/package.json                        |  3 +--
 packages/contract-wrappers/test/erc20_wrapper_test.ts          |  3 +--
 packages/contract-wrappers/test/erc721_wrapper_test.ts         |  3 +--
 packages/dev-utils/package.json                                |  3 +--
 packages/dev-utils/src/web3_factory.ts                         |  7 +++----
 packages/metacoin/package.json                                 |  3 +--
 packages/metacoin/test/utils/web3_wrapper.ts                   |  5 ++---
 packages/migrations/package.json                               |  3 +--
 packages/migrations/src/utils/provider_factory.ts              |  5 ++---
 packages/subproviders/src/index.ts                             |  1 +
 packages/subproviders/src/utils/subprovider_utils.ts           |  4 ++--
 .../subproviders/test/integration/ledger_subprovider_test.ts   |  3 +--
 .../subproviders/test/unit/eth_lightwallet_subprovider_test.ts |  3 +--
 packages/subproviders/test/unit/ledger_subprovider_test.ts     |  3 +--
 .../subproviders/test/unit/mnemonic_wallet_subprovider_test.ts |  3 +--
 .../subproviders/test/unit/nonce_tracker_subprovider_test.ts   |  3 +--
 .../test/unit/private_key_wallet_subprovider_test.ts           |  3 +--
 .../subproviders/test/unit/redundant_rpc_subprovider_test.ts   |  3 +--
 packages/testnet-faucets/package.json                          |  3 +--
 packages/testnet-faucets/src/ts/handler.ts                     | 10 +++++++---
 packages/website/ts/blockchain.ts                              |  8 ++++----
 21 files changed, 35 insertions(+), 47 deletions(-)

diff --git a/packages/contract-wrappers/package.json b/packages/contract-wrappers/package.json
index b8fd8bd50..a781496ab 100644
--- a/packages/contract-wrappers/package.json
+++ b/packages/contract-wrappers/package.json
@@ -70,8 +70,7 @@
         "sinon": "^4.0.0",
         "source-map-support": "^0.5.0",
         "tslint": "5.8.0",
-        "typescript": "2.7.1",
-        "web3-provider-engine": "14.0.6"
+        "typescript": "2.7.1"
     },
     "dependencies": {
         "@0xproject/assert": "^0.3.0",
diff --git a/packages/contract-wrappers/test/erc20_wrapper_test.ts b/packages/contract-wrappers/test/erc20_wrapper_test.ts
index 0011508e0..cf7ac527e 100644
--- a/packages/contract-wrappers/test/erc20_wrapper_test.ts
+++ b/packages/contract-wrappers/test/erc20_wrapper_test.ts
@@ -1,11 +1,10 @@
 import { BlockchainLifecycle, callbackErrorReporter } from '@0xproject/dev-utils';
-import { EmptyWalletSubprovider } from '@0xproject/subproviders';
+import { EmptyWalletSubprovider, Web3ProviderEngine } from '@0xproject/subproviders';
 import { DoneCallback } from '@0xproject/types';
 import { BigNumber } from '@0xproject/utils';
 import * as chai from 'chai';
 import { Provider } from 'ethereum-types';
 import 'mocha';
-import Web3ProviderEngine = require('web3-provider-engine');
 
 import {
     BlockParamLiteral,
diff --git a/packages/contract-wrappers/test/erc721_wrapper_test.ts b/packages/contract-wrappers/test/erc721_wrapper_test.ts
index 96b8fcf1d..f005ac2e0 100644
--- a/packages/contract-wrappers/test/erc721_wrapper_test.ts
+++ b/packages/contract-wrappers/test/erc721_wrapper_test.ts
@@ -1,11 +1,10 @@
 import { BlockchainLifecycle, callbackErrorReporter } from '@0xproject/dev-utils';
-import { EmptyWalletSubprovider } from '@0xproject/subproviders';
+import { EmptyWalletSubprovider, Web3ProviderEngine } from '@0xproject/subproviders';
 import { DoneCallback } from '@0xproject/types';
 import { BigNumber } from '@0xproject/utils';
 import * as chai from 'chai';
 import { Provider } from 'ethereum-types';
 import 'mocha';
-import Web3ProviderEngine = require('web3-provider-engine');
 
 import {
     BlockParamLiteral,
diff --git a/packages/dev-utils/package.json b/packages/dev-utils/package.json
index 1808e23e4..f0ef24684 100644
--- a/packages/dev-utils/package.json
+++ b/packages/dev-utils/package.json
@@ -51,8 +51,7 @@
         "ethereum-types": "^0.0.2",
         "@0xproject/typescript-typings": "^0.4.2",
         "@0xproject/web3-wrapper": "^0.7.2",
-        "lodash": "^4.17.4",
-        "web3-provider-engine": "14.0.6"
+        "lodash": "^4.17.4"
     },
     "publishConfig": {
         "access": "public"
diff --git a/packages/dev-utils/src/web3_factory.ts b/packages/dev-utils/src/web3_factory.ts
index 67112d410..8e713fa68 100644
--- a/packages/dev-utils/src/web3_factory.ts
+++ b/packages/dev-utils/src/web3_factory.ts
@@ -1,10 +1,9 @@
-import ProviderEngine = require('web3-provider-engine');
-
 import {
     EmptyWalletSubprovider,
     FakeGasEstimateSubprovider,
     GanacheSubprovider,
     RPCSubprovider,
+    Web3ProviderEngine,
 } from '@0xproject/subproviders';
 import * as fs from 'fs';
 import * as _ from 'lodash';
@@ -20,8 +19,8 @@ export interface Web3Config {
 }
 
 export const web3Factory = {
-    getRpcProvider(config: Web3Config = {}): ProviderEngine {
-        const provider = new ProviderEngine();
+    getRpcProvider(config: Web3Config = {}): Web3ProviderEngine {
+        const provider = new Web3ProviderEngine();
         const hasAddresses = _.isUndefined(config.hasAddresses) || config.hasAddresses;
         config.shouldUseFakeGasEstimate =
             _.isUndefined(config.shouldUseFakeGasEstimate) || config.shouldUseFakeGasEstimate;
diff --git a/packages/metacoin/package.json b/packages/metacoin/package.json
index 9b96441c4..744e9e69a 100644
--- a/packages/metacoin/package.json
+++ b/packages/metacoin/package.json
@@ -44,8 +44,7 @@
         "ethereum-types": "^0.0.2",
         "ethers": "3.0.22",
         "lodash": "^4.17.4",
-        "run-s": "^0.0.0",
-        "web3-provider-engine": "14.0.6"
+        "run-s": "^0.0.0"
     },
     "devDependencies": {
         "@0xproject/dev-utils": "^0.4.5",
diff --git a/packages/metacoin/test/utils/web3_wrapper.ts b/packages/metacoin/test/utils/web3_wrapper.ts
index a3956e661..36bd6343f 100644
--- a/packages/metacoin/test/utils/web3_wrapper.ts
+++ b/packages/metacoin/test/utils/web3_wrapper.ts
@@ -1,9 +1,8 @@
 import { env, EnvVars } from '@0xproject/dev-utils';
-import { GanacheSubprovider, prependSubprovider, RPCSubprovider } from '@0xproject/subproviders';
+import { GanacheSubprovider, prependSubprovider, RPCSubprovider, Web3ProviderEngine } from '@0xproject/subproviders';
 import { errorUtils, logUtils } from '@0xproject/utils';
 import { Web3Wrapper } from '@0xproject/web3-wrapper';
 import * as fs from 'fs';
-import ProviderEngine = require('web3-provider-engine');
 
 import { config } from './config';
 import { coverage } from './coverage';
@@ -29,7 +28,7 @@ switch (process.env.TEST_PROVIDER) {
         throw errorUtils.spawnSwitchErr('TEST_PROVIDER', process.env.TEST_PROVIDER);
 }
 
-export const provider = new ProviderEngine();
+export const provider = new Web3ProviderEngine();
 if (testProvider === ProviderType.Ganache) {
     provider.addProvider(
         new GanacheSubprovider({
diff --git a/packages/migrations/package.json b/packages/migrations/package.json
index 0b7ab8ae2..d4aa73912 100644
--- a/packages/migrations/package.json
+++ b/packages/migrations/package.json
@@ -60,8 +60,7 @@
         "@ledgerhq/hw-app-eth": "^4.3.0",
         "ethereum-types": "^0.0.2",
         "ethers": "3.0.22",
-        "lodash": "^4.17.4",
-        "web3-provider-engine": "14.0.6"
+        "lodash": "^4.17.4"
     },
     "optionalDependencies": {
         "@ledgerhq/hw-transport-node-hid": "^4.3.0"
diff --git a/packages/migrations/src/utils/provider_factory.ts b/packages/migrations/src/utils/provider_factory.ts
index cf95cb576..5f69b258d 100644
--- a/packages/migrations/src/utils/provider_factory.ts
+++ b/packages/migrations/src/utils/provider_factory.ts
@@ -1,9 +1,8 @@
-import { LedgerEthereumClient, LedgerSubprovider, RPCSubprovider } from '@0xproject/subproviders';
+import { LedgerEthereumClient, LedgerSubprovider, RPCSubprovider, Web3ProviderEngine } from '@0xproject/subproviders';
 import Eth from '@ledgerhq/hw-app-eth';
 // tslint:disable:no-implicit-dependencies
 import TransportNodeHid from '@ledgerhq/hw-transport-node-hid';
 import { Provider } from 'ethereum-types';
-import ProviderEngine = require('web3-provider-engine');
 
 import { constants } from './constants';
 
@@ -14,7 +13,7 @@ async function ledgerEthereumNodeJsClientFactoryAsync(): Promise<LedgerEthereumC
 }
 export const providerFactory = {
     async getLedgerProviderAsync(): Promise<Provider> {
-        const provider = new ProviderEngine();
+        const provider = new Web3ProviderEngine();
         const ledgerWalletConfigs = {
             networkId: constants.KOVAN_NETWORK_ID,
             ledgerEthereumClientFactoryAsync: ledgerEthereumNodeJsClientFactoryAsync,
diff --git a/packages/subproviders/src/index.ts b/packages/subproviders/src/index.ts
index 9a5597a06..9d4480e59 100644
--- a/packages/subproviders/src/index.ts
+++ b/packages/subproviders/src/index.ts
@@ -1,5 +1,6 @@
 import Eth from '@ledgerhq/hw-app-eth';
 import TransportU2F from '@ledgerhq/hw-transport-u2f';
+export import Web3ProviderEngine = require('web3-provider-engine');
 export { ECSignature } from '@0xproject/types';
 
 import { LedgerEthereumClient } from './types';
diff --git a/packages/subproviders/src/utils/subprovider_utils.ts b/packages/subproviders/src/utils/subprovider_utils.ts
index 24ebedd06..beda408ab 100644
--- a/packages/subproviders/src/utils/subprovider_utils.ts
+++ b/packages/subproviders/src/utils/subprovider_utils.ts
@@ -1,4 +1,4 @@
-import ProviderEngine = require('web3-provider-engine');
+import Web3ProviderEngine = require('web3-provider-engine');
 
 import { Subprovider } from '../subproviders/subprovider';
 
@@ -7,7 +7,7 @@ import { Subprovider } from '../subproviders/subprovider';
  * @param provider    Given provider
  * @param subprovider Subprovider to prepend
  */
-export function prependSubprovider(provider: ProviderEngine, subprovider: Subprovider): void {
+export function prependSubprovider(provider: Web3ProviderEngine, subprovider: Subprovider): void {
     subprovider.setEngine(provider);
     // HACK: We use implementation details of provider engine here
     // https://github.com/MetaMask/provider-engine/blob/master/index.js#L68
diff --git a/packages/subproviders/test/integration/ledger_subprovider_test.ts b/packages/subproviders/test/integration/ledger_subprovider_test.ts
index e5233fdbc..103e8f952 100644
--- a/packages/subproviders/test/integration/ledger_subprovider_test.ts
+++ b/packages/subproviders/test/integration/ledger_subprovider_test.ts
@@ -7,9 +7,8 @@ import TransportNodeHid from '@ledgerhq/hw-transport-node-hid';
 import * as chai from 'chai';
 import { JSONRPCResponsePayload } from 'ethereum-types';
 import * as ethUtils from 'ethereumjs-util';
-import Web3ProviderEngine = require('web3-provider-engine');
 
-import { LedgerSubprovider, RPCSubprovider } from '../../src';
+import { LedgerSubprovider, RPCSubprovider, Web3ProviderEngine } from '../../src';
 import { LedgerEthereumClient } from '../../src/types';
 import { chaiSetup } from '../chai_setup';
 import { fixtureData } from '../utils/fixture_data';
diff --git a/packages/subproviders/test/unit/eth_lightwallet_subprovider_test.ts b/packages/subproviders/test/unit/eth_lightwallet_subprovider_test.ts
index f17c21f02..063817a95 100644
--- a/packages/subproviders/test/unit/eth_lightwallet_subprovider_test.ts
+++ b/packages/subproviders/test/unit/eth_lightwallet_subprovider_test.ts
@@ -2,9 +2,8 @@ import * as chai from 'chai';
 import * as lightwallet from 'eth-lightwallet';
 import { JSONRPCResponsePayload } from 'ethereum-types';
 import * as ethUtils from 'ethereumjs-util';
-import Web3ProviderEngine = require('web3-provider-engine');
 
-import { EthLightwalletSubprovider } from '../../src';
+import { EthLightwalletSubprovider, Web3ProviderEngine } from '../../src';
 import { DoneCallback } from '../../src/types';
 import { chaiSetup } from '../chai_setup';
 import { fixtureData } from '../utils/fixture_data';
diff --git a/packages/subproviders/test/unit/ledger_subprovider_test.ts b/packages/subproviders/test/unit/ledger_subprovider_test.ts
index 3b57e125b..edff5144e 100644
--- a/packages/subproviders/test/unit/ledger_subprovider_test.ts
+++ b/packages/subproviders/test/unit/ledger_subprovider_test.ts
@@ -2,9 +2,8 @@ import * as chai from 'chai';
 import { JSONRPCResponsePayload } from 'ethereum-types';
 import * as ethUtils from 'ethereumjs-util';
 import * as _ from 'lodash';
-import Web3ProviderEngine = require('web3-provider-engine');
 
-import { LedgerSubprovider } from '../../src';
+import { LedgerSubprovider, Web3ProviderEngine } from '../../src';
 import {
     DoneCallback,
     LedgerCommunicationClient,
diff --git a/packages/subproviders/test/unit/mnemonic_wallet_subprovider_test.ts b/packages/subproviders/test/unit/mnemonic_wallet_subprovider_test.ts
index 51ba7094c..f2bdda3cd 100644
--- a/packages/subproviders/test/unit/mnemonic_wallet_subprovider_test.ts
+++ b/packages/subproviders/test/unit/mnemonic_wallet_subprovider_test.ts
@@ -1,9 +1,8 @@
 import * as chai from 'chai';
 import { JSONRPCResponsePayload } from 'ethereum-types';
 import * as ethUtils from 'ethereumjs-util';
-import Web3ProviderEngine = require('web3-provider-engine');
 
-import { GanacheSubprovider, MnemonicWalletSubprovider } from '../../src/';
+import { GanacheSubprovider, MnemonicWalletSubprovider, Web3ProviderEngine } from '../../src/';
 import { DoneCallback, WalletSubproviderErrors } from '../../src/types';
 import { chaiSetup } from '../chai_setup';
 import { fixtureData } from '../utils/fixture_data';
diff --git a/packages/subproviders/test/unit/nonce_tracker_subprovider_test.ts b/packages/subproviders/test/unit/nonce_tracker_subprovider_test.ts
index fa33cd50a..c437d0815 100644
--- a/packages/subproviders/test/unit/nonce_tracker_subprovider_test.ts
+++ b/packages/subproviders/test/unit/nonce_tracker_subprovider_test.ts
@@ -1,11 +1,10 @@
 import * as chai from 'chai';
-import Web3ProviderEngine = require('web3-provider-engine');
 import FixtureSubprovider = require('web3-provider-engine/subproviders/fixture');
 
 import { promisify } from '@0xproject/utils';
 import EthereumTx = require('ethereumjs-tx');
 
-import { NonceTrackerSubprovider } from '../../src';
+import { NonceTrackerSubprovider, Web3ProviderEngine } from '../../src';
 import { chaiSetup } from '../chai_setup';
 
 const expect = chai.expect;
diff --git a/packages/subproviders/test/unit/private_key_wallet_subprovider_test.ts b/packages/subproviders/test/unit/private_key_wallet_subprovider_test.ts
index ab321bcff..95773145f 100644
--- a/packages/subproviders/test/unit/private_key_wallet_subprovider_test.ts
+++ b/packages/subproviders/test/unit/private_key_wallet_subprovider_test.ts
@@ -1,9 +1,8 @@
 import * as chai from 'chai';
 import { JSONRPCResponsePayload } from 'ethereum-types';
 import * as ethUtils from 'ethereumjs-util';
-import Web3ProviderEngine = require('web3-provider-engine');
 
-import { GanacheSubprovider, PrivateKeyWalletSubprovider } from '../../src/';
+import { GanacheSubprovider, PrivateKeyWalletSubprovider, Web3ProviderEngine } from '../../src/';
 import { DoneCallback, WalletSubproviderErrors } from '../../src/types';
 import { chaiSetup } from '../chai_setup';
 import { fixtureData } from '../utils/fixture_data';
diff --git a/packages/subproviders/test/unit/redundant_rpc_subprovider_test.ts b/packages/subproviders/test/unit/redundant_rpc_subprovider_test.ts
index e3f204b15..e30d2f74e 100644
--- a/packages/subproviders/test/unit/redundant_rpc_subprovider_test.ts
+++ b/packages/subproviders/test/unit/redundant_rpc_subprovider_test.ts
@@ -2,9 +2,8 @@ import { DoneCallback } from '@0xproject/types';
 import * as chai from 'chai';
 import { JSONRPCResponsePayload } from 'ethereum-types';
 import * as Sinon from 'sinon';
-import Web3ProviderEngine = require('web3-provider-engine');
 
-import { RedundantSubprovider, RPCSubprovider } from '../../src';
+import { RedundantSubprovider, RPCSubprovider, Web3ProviderEngine } from '../../src';
 import { Subprovider } from '../../src/subproviders/subprovider';
 import { chaiSetup } from '../chai_setup';
 import { ganacheSubprovider } from '../utils/ganache_subprovider';
diff --git a/packages/testnet-faucets/package.json b/packages/testnet-faucets/package.json
index 2aea0a47b..442f488c9 100644
--- a/packages/testnet-faucets/package.json
+++ b/packages/testnet-faucets/package.json
@@ -28,8 +28,7 @@
         "ethereumjs-util": "^5.1.1",
         "express": "^4.15.2",
         "lodash": "^4.17.4",
-        "rollbar": "^0.6.5",
-        "web3-provider-engine": "14.0.6"
+        "rollbar": "^0.6.5"
     },
     "devDependencies": {
         "@0xproject/tslint-config": "^0.4.21",
diff --git a/packages/testnet-faucets/src/ts/handler.ts b/packages/testnet-faucets/src/ts/handler.ts
index a725a35f5..0f61159fa 100644
--- a/packages/testnet-faucets/src/ts/handler.ts
+++ b/packages/testnet-faucets/src/ts/handler.ts
@@ -5,8 +5,12 @@ import { Provider } from 'ethereum-types';
 import * as express from 'express';
 import * as _ from 'lodash';
 
-import { NonceTrackerSubprovider, PrivateKeyWalletSubprovider, RPCSubprovider } from '@0xproject/subproviders';
-import ProviderEngine = require('web3-provider-engine');
+import {
+    NonceTrackerSubprovider,
+    PrivateKeyWalletSubprovider,
+    RPCSubprovider,
+    Web3ProviderEngine,
+} from '@0xproject/subproviders';
 
 import { configs } from './configs';
 import { constants } from './constants';
@@ -38,7 +42,7 @@ export class Handler {
         if (_.isUndefined(configs.DISPENSER_PRIVATE_KEY)) {
             throw new Error('Dispenser Private key not found');
         }
-        const engine = new ProviderEngine();
+        const engine = new Web3ProviderEngine();
         engine.addProvider(new NonceTrackerSubprovider());
         engine.addProvider(new PrivateKeyWalletSubprovider(configs.DISPENSER_PRIVATE_KEY));
         engine.addProvider(new RPCSubprovider(rpcUrl));
diff --git a/packages/website/ts/blockchain.ts b/packages/website/ts/blockchain.ts
index 31d8ba2d6..099171c45 100644
--- a/packages/website/ts/blockchain.ts
+++ b/packages/website/ts/blockchain.ts
@@ -18,6 +18,7 @@ import {
     RPCSubprovider,
     SignerSubprovider,
     Subprovider,
+    Web3ProviderEngine,
 } from '@0xproject/subproviders';
 import {
     BlockParam,
@@ -61,7 +62,6 @@ import { configs } from 'ts/utils/configs';
 import { constants } from 'ts/utils/constants';
 import { errorReporter } from 'ts/utils/error_reporter';
 import { utils } from 'ts/utils/utils';
-import ProviderEngine = require('web3-provider-engine');
 import FilterSubprovider = require('web3-provider-engine/subproviders/filters');
 
 import * as MintableArtifacts from '../contracts/Mintable.json';
@@ -148,7 +148,7 @@ export class Blockchain {
             if (!isU2FSupported) {
                 throw new Error('Cannot update providerType to LEDGER without U2F support');
             }
-            const provider = new ProviderEngine();
+            const provider = new Web3ProviderEngine();
             const ledgerWalletConfigs = {
                 networkId: networkIdIfExists,
                 ledgerEthereumClientFactoryAsync: ledgerEthereumBrowserClientFactoryAsync,
@@ -165,7 +165,7 @@ export class Blockchain {
         } else if (doesInjectedWeb3Exist && isPublicNodeAvailableForNetworkId) {
             // We catch all requests involving a users account and send it to the injectedWeb3
             // instance. All other requests go to the public hosted node.
-            const provider = new ProviderEngine();
+            const provider = new Web3ProviderEngine();
             provider.addProvider(new SignerSubprovider(injectedWeb3.currentProvider));
             provider.addProvider(new FilterSubprovider());
             const rpcSubproviders = _.map(publicNodeUrlsIfExistsForNetworkId, publicNodeUrl => {
@@ -181,7 +181,7 @@ export class Blockchain {
             // If no injectedWeb3 instance, all requests fallback to our public hosted mainnet/testnet node
             // We do this so that users can still browse the 0x Portal DApp even if they do not have web3
             // injected into their browser.
-            const provider = new ProviderEngine();
+            const provider = new Web3ProviderEngine();
             provider.addProvider(new FilterSubprovider());
             const networkId = constants.NETWORK_ID_MAINNET;
             const rpcSubproviders = _.map(configs.PUBLIC_NODE_URLS_BY_NETWORK_ID[networkId], publicNodeUrl => {
-- 
cgit v1.2.3


From 9d24341d9405a91f9153abd3f21569326392d246 Mon Sep 17 00:00:00 2001
From: Fabio Berger <me@fabioberger.com>
Date: Fri, 13 Jul 2018 14:35:31 +0200
Subject: Export Web3ProviderEngine and RPCSubprovider from 0x.js

---
 packages/0x.js/package.json | 1 +
 packages/0x.js/src/index.ts | 1 +
 2 files changed, 2 insertions(+)

diff --git a/packages/0x.js/package.json b/packages/0x.js/package.json
index d77f31a69..966770cf0 100644
--- a/packages/0x.js/package.json
+++ b/packages/0x.js/package.json
@@ -105,6 +105,7 @@
         "@0xproject/contract-wrappers": "^0.1.0",
         "@0xproject/order-utils": "^1.0.0",
         "@0xproject/sol-compiler": "^0.5.3",
+        "@0xproject/subproviders": "^0.10.5",
         "@0xproject/types": "^1.0.0",
         "@0xproject/typescript-typings": "^0.4.2",
         "@0xproject/utils": "^0.7.2",
diff --git a/packages/0x.js/src/index.ts b/packages/0x.js/src/index.ts
index 6dfc0bacc..95faa860d 100644
--- a/packages/0x.js/src/index.ts
+++ b/packages/0x.js/src/index.ts
@@ -1,6 +1,7 @@
 export { ZeroEx } from './0x';
 
 export { MessagePrefixType, MessagePrefixOpts } from '@0xproject/order-utils';
+export { Web3ProviderEngine, RPCSubprovider } from '@0xproject/subproviders';
 
 export {
     ExchangeContractErrs,
-- 
cgit v1.2.3


From 4c7fd5a4e8b745bfdbfca20b5495f48332aae90d Mon Sep 17 00:00:00 2001
From: Fabio Berger <me@fabioberger.com>
Date: Fri, 13 Jul 2018 15:03:13 +0200
Subject: Replace process.browser with detect-node library

---
 packages/utils/package.json      | 1 +
 packages/utils/src/fetchAsync.ts | 3 ++-
 packages/utils/src/globals.d.ts  | 4 ++++
 3 files changed, 7 insertions(+), 1 deletion(-)

diff --git a/packages/utils/package.json b/packages/utils/package.json
index cb0989836..a454b35ee 100644
--- a/packages/utils/package.json
+++ b/packages/utils/package.json
@@ -39,6 +39,7 @@
         "@0xproject/typescript-typings": "^0.4.2",
         "@types/node": "^8.0.53",
         "bignumber.js": "~4.1.0",
+        "detect-node": "2.0.3",
         "ethereum-types": "^0.0.2",
         "ethereumjs-util": "^5.1.1",
         "ethers": "3.0.22",
diff --git a/packages/utils/src/fetchAsync.ts b/packages/utils/src/fetchAsync.ts
index a009f0c86..47d87815e 100644
--- a/packages/utils/src/fetchAsync.ts
+++ b/packages/utils/src/fetchAsync.ts
@@ -1,3 +1,4 @@
+import isNode = require('detect-node');
 import 'isomorphic-fetch';
 
 export const fetchAsync = async (
@@ -6,7 +7,7 @@ export const fetchAsync = async (
     timeoutMs: number = 20000,
 ): Promise<Response> => {
     let optionsWithAbortParam;
-    if ((process as any).browser === true) {
+    if (isNode) {
         const controller = new AbortController();
         const signal = controller.signal;
         setTimeout(() => {
diff --git a/packages/utils/src/globals.d.ts b/packages/utils/src/globals.d.ts
index 94e63a32d..98a4b56fc 100644
--- a/packages/utils/src/globals.d.ts
+++ b/packages/utils/src/globals.d.ts
@@ -4,3 +4,7 @@ declare module '*.json' {
     export default json;
     /* tslint:enable */
 }
+
+declare module 'detect-node' {
+    export const isNode: boolean;
+}
-- 
cgit v1.2.3


From 70c3515c94e731f060aa8c532eb52d845f07b20f Mon Sep 17 00:00:00 2001
From: Fabio Berger <me@fabioberger.com>
Date: Fri, 13 Jul 2018 15:04:17 +0200
Subject: Make createFinalPayload protected

---
 packages/subproviders/src/subproviders/rpc_subprovider.ts | 2 +-
 packages/subproviders/src/subproviders/subprovider.ts     | 4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/packages/subproviders/src/subproviders/rpc_subprovider.ts b/packages/subproviders/src/subproviders/rpc_subprovider.ts
index 5c1c3272c..cb08e729e 100644
--- a/packages/subproviders/src/subproviders/rpc_subprovider.ts
+++ b/packages/subproviders/src/subproviders/rpc_subprovider.ts
@@ -31,7 +31,7 @@ export class RPCSubprovider extends Subprovider {
      */
     // tslint:disable-next-line:prefer-function-over-method async-suffix
     public async handleRequest(payload: JSONRPCRequestPayload, next: Callback, end: ErrorCallback): Promise<void> {
-        const finalPayload = Subprovider.createFinalPayload(payload);
+        const finalPayload = Subprovider._createFinalPayload(payload);
         const headers = new Headers({
             Accept: 'application/json',
             'Content-Type': 'application/json',
diff --git a/packages/subproviders/src/subproviders/subprovider.ts b/packages/subproviders/src/subproviders/subprovider.ts
index 6f4a8f99e..5dc273569 100644
--- a/packages/subproviders/src/subproviders/subprovider.ts
+++ b/packages/subproviders/src/subproviders/subprovider.ts
@@ -9,7 +9,7 @@ import { Callback, ErrorCallback, JSONRPCRequestPayloadWithMethod } from '../typ
 export abstract class Subprovider {
     // tslint:disable-next-line:underscore-private-and-protected
     private engine!: Provider;
-    public static createFinalPayload(
+    protected static _createFinalPayload(
         payload: Partial<JSONRPCRequestPayloadWithMethod>,
     ): Partial<JSONRPCRequestPayloadWithMethod> {
         const finalPayload = {
@@ -47,7 +47,7 @@ export abstract class Subprovider {
      * @returns JSON RPC response payload
      */
     public async emitPayloadAsync(payload: Partial<JSONRPCRequestPayloadWithMethod>): Promise<JSONRPCResponsePayload> {
-        const finalPayload = Subprovider.createFinalPayload(payload);
+        const finalPayload = Subprovider._createFinalPayload(payload);
         const response = await promisify<JSONRPCResponsePayload>(this.engine.sendAsync, this.engine)(finalPayload);
         return response;
     }
-- 
cgit v1.2.3


From f5293e6c38b7e4e5352379e2fbd4d03c02b455b2 Mon Sep 17 00:00:00 2001
From: Fabio Berger <me@fabioberger.com>
Date: Fri, 13 Jul 2018 15:09:51 +0200
Subject: Fix linter

---
 packages/subproviders/src/subproviders/rpc_subprovider.ts | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/packages/subproviders/src/subproviders/rpc_subprovider.ts b/packages/subproviders/src/subproviders/rpc_subprovider.ts
index cb08e729e..dac821d01 100644
--- a/packages/subproviders/src/subproviders/rpc_subprovider.ts
+++ b/packages/subproviders/src/subproviders/rpc_subprovider.ts
@@ -30,7 +30,7 @@ export class RPCSubprovider extends Subprovider {
      * @param end Callback to call if subprovider handled the request and wants to pass back the request.
      */
     // tslint:disable-next-line:prefer-function-over-method async-suffix
-    public async handleRequest(payload: JSONRPCRequestPayload, next: Callback, end: ErrorCallback): Promise<void> {
+    public async handleRequest(payload: JSONRPCRequestPayload, _next: Callback, end: ErrorCallback): Promise<void> {
         const finalPayload = Subprovider._createFinalPayload(payload);
         const headers = new Headers({
             Accept: 'application/json',
-- 
cgit v1.2.3


From 350989bbec59b731a11c69237bec8625f2331ce2 Mon Sep 17 00:00:00 2001
From: Fabio Berger <me@fabioberger.com>
Date: Fri, 13 Jul 2018 15:25:37 +0200
Subject: Move type defs to typescript-typingsd

---
 packages/subproviders/src/globals.d.ts                      | 10 ----------
 packages/typescript-typings/types/detect-node/index.d.ts    |  3 +++
 packages/typescript-typings/types/json-rpc-error/index.d.ts |  8 ++++++++
 packages/utils/src/globals.d.ts                             |  4 ----
 4 files changed, 11 insertions(+), 14 deletions(-)
 create mode 100644 packages/typescript-typings/types/detect-node/index.d.ts
 create mode 100644 packages/typescript-typings/types/json-rpc-error/index.d.ts

diff --git a/packages/subproviders/src/globals.d.ts b/packages/subproviders/src/globals.d.ts
index 837ed287d..94e63a32d 100644
--- a/packages/subproviders/src/globals.d.ts
+++ b/packages/subproviders/src/globals.d.ts
@@ -4,13 +4,3 @@ declare module '*.json' {
     export default json;
     /* tslint:enable */
 }
-
-// TODO: Move this to `typescript-typings` once it is more fleshed out
-declare module 'json-rpc-error' {
-    export class InternalError extends Error {
-        constructor(err: Error | string);
-    }
-    export class MethodNotFound extends Error {
-        constructor();
-    }
-}
diff --git a/packages/typescript-typings/types/detect-node/index.d.ts b/packages/typescript-typings/types/detect-node/index.d.ts
new file mode 100644
index 000000000..4c58b8450
--- /dev/null
+++ b/packages/typescript-typings/types/detect-node/index.d.ts
@@ -0,0 +1,3 @@
+declare module 'detect-node' {
+    export const isNode: boolean;
+}
diff --git a/packages/typescript-typings/types/json-rpc-error/index.d.ts b/packages/typescript-typings/types/json-rpc-error/index.d.ts
new file mode 100644
index 000000000..dfaf92167
--- /dev/null
+++ b/packages/typescript-typings/types/json-rpc-error/index.d.ts
@@ -0,0 +1,8 @@
+declare module 'json-rpc-error' {
+    export class InternalError extends Error {
+        constructor(err: Error | string);
+    }
+    export class MethodNotFound extends Error {
+        constructor();
+    }
+}
diff --git a/packages/utils/src/globals.d.ts b/packages/utils/src/globals.d.ts
index 98a4b56fc..94e63a32d 100644
--- a/packages/utils/src/globals.d.ts
+++ b/packages/utils/src/globals.d.ts
@@ -4,7 +4,3 @@ declare module '*.json' {
     export default json;
     /* tslint:enable */
 }
-
-declare module 'detect-node' {
-    export const isNode: boolean;
-}
-- 
cgit v1.2.3


From 179c487da958dedda0f1a8cd93a2ce67f169e53c Mon Sep 17 00:00:00 2001
From: Fabio Berger <me@fabioberger.com>
Date: Fri, 13 Jul 2018 15:25:48 +0200
Subject: Add missing assertion

---
 packages/subproviders/src/subproviders/rpc_subprovider.ts | 1 +
 1 file changed, 1 insertion(+)

diff --git a/packages/subproviders/src/subproviders/rpc_subprovider.ts b/packages/subproviders/src/subproviders/rpc_subprovider.ts
index dac821d01..3ad0e5325 100644
--- a/packages/subproviders/src/subproviders/rpc_subprovider.ts
+++ b/packages/subproviders/src/subproviders/rpc_subprovider.ts
@@ -18,6 +18,7 @@ export class RPCSubprovider extends Subprovider {
     constructor(rpcUrl: string, requestTimeoutMs: number = 20000) {
         super();
         assert.isString('rpcUrl', rpcUrl);
+        assert.isNumber('requestTimeoutMs', requestTimeoutMs);
         this._rpcUrl = rpcUrl;
         this._requestTimeoutMs = requestTimeoutMs;
     }
-- 
cgit v1.2.3


From 25681754bd3bb963e3348636a4659d6d426ed9e4 Mon Sep 17 00:00:00 2001
From: Fabio Berger <me@fabioberger.com>
Date: Fri, 13 Jul 2018 16:06:15 +0200
Subject: Fix abi-gen tests to not rely on sleep, since it causes intermittent
 failures

---
 packages/abi-gen/test/utils_test.ts | 13 +++++++------
 1 file changed, 7 insertions(+), 6 deletions(-)

diff --git a/packages/abi-gen/test/utils_test.ts b/packages/abi-gen/test/utils_test.ts
index c6147df38..f3dd38035 100644
--- a/packages/abi-gen/test/utils_test.ts
+++ b/packages/abi-gen/test/utils_test.ts
@@ -13,8 +13,6 @@ chai.use(dirtyChai);
 
 const expect = chai.expect;
 
-const SLEEP_MS = 10; // time to wait before re-timestamping a file
-
 describe('makeOutputFileName()', () => {
     it('should handle Metacoin usage', () => {
         expect(utils.makeOutputFileName('Metacoin')).to.equal('metacoin');
@@ -65,19 +63,22 @@ describe('isOutputFileUpToDate()', () => {
         describe('with an existing output file', () => {
             let outputFile: string;
             before(() => {
-                sleep.msleep(SLEEP_MS); // to ensure different timestamp
                 outputFile = tmp.fileSync(
                     { discardDescriptor: true }, // close file (set timestamp)
                 ).name;
+                const abiFileModTimeMs = fs.statSync(abiFile).mtimeMs;
+                const outfileModTimeMs = abiFileModTimeMs + 1;
+                fs.utimesSync(outputFile, outfileModTimeMs, outfileModTimeMs);
             });
 
-            it('should return true when output file and is newer than abi file', async () => {
+            it('should return true when output file is newer than abi file', async () => {
                 expect(utils.isOutputFileUpToDate(abiFile, outputFile)).to.be.true();
             });
 
             it('should return false when output file exists but is older than abi file', () => {
-                sleep.msleep(SLEEP_MS); // to ensure different timestamp
-                fs.closeSync(fs.openSync(abiFile, 'w')); // touch abi file
+                const outFileModTimeMs = fs.statSync(outputFile).mtimeMs;
+                const abiFileModTimeMs = outFileModTimeMs + 1;
+                fs.utimesSync(abiFile, abiFileModTimeMs, abiFileModTimeMs);
 
                 expect(utils.isOutputFileUpToDate(abiFile, outputFile)).to.be.false();
             });
-- 
cgit v1.2.3


From fcc8cdd36af3a21222d1b97884896ffbd8c2efd1 Mon Sep 17 00:00:00 2001
From: Fabio Berger <me@fabioberger.com>
Date: Fri, 13 Jul 2018 16:40:06 +0200
Subject: Update yarn.lock and artifact

---
 packages/0x.js/src/artifacts/ZRXToken.json | 20087 +++++++++++++--------------
 yarn.lock                                  |     2 +-
 2 files changed, 10031 insertions(+), 10058 deletions(-)

diff --git a/packages/0x.js/src/artifacts/ZRXToken.json b/packages/0x.js/src/artifacts/ZRXToken.json
index 265560c77..0ce91c1c1 100644
--- a/packages/0x.js/src/artifacts/ZRXToken.json
+++ b/packages/0x.js/src/artifacts/ZRXToken.json
@@ -1,10058 +1,10031 @@
 {
-    "schemaVersion": "2.0.0",
-    "contractName": "ZRXToken",
-    "compilerOutput": {
-        "abi": [
-            {
-                "constant": true,
-                "inputs": [],
-                "name": "name",
-                "outputs": [
-                    {
-                        "name": "",
-                        "type": "string"
-                    }
-                ],
-                "payable": false,
-                "type": "function"
-            },
-            {
-                "constant": false,
-                "inputs": [
-                    {
-                        "name": "_spender",
-                        "type": "address"
-                    },
-                    {
-                        "name": "_value",
-                        "type": "uint256"
-                    }
-                ],
-                "name": "approve",
-                "outputs": [
-                    {
-                        "name": "",
-                        "type": "bool"
-                    }
-                ],
-                "payable": false,
-                "type": "function"
-            },
-            {
-                "constant": true,
-                "inputs": [],
-                "name": "totalSupply",
-                "outputs": [
-                    {
-                        "name": "",
-                        "type": "uint256"
-                    }
-                ],
-                "payable": false,
-                "type": "function"
-            },
-            {
-                "constant": false,
-                "inputs": [
-                    {
-                        "name": "_from",
-                        "type": "address"
-                    },
-                    {
-                        "name": "_to",
-                        "type": "address"
-                    },
-                    {
-                        "name": "_value",
-                        "type": "uint256"
-                    }
-                ],
-                "name": "transferFrom",
-                "outputs": [
-                    {
-                        "name": "",
-                        "type": "bool"
-                    }
-                ],
-                "payable": false,
-                "type": "function"
-            },
-            {
-                "constant": true,
-                "inputs": [],
-                "name": "decimals",
-                "outputs": [
-                    {
-                        "name": "",
-                        "type": "uint8"
-                    }
-                ],
-                "payable": false,
-                "type": "function"
-            },
-            {
-                "constant": true,
-                "inputs": [
-                    {
-                        "name": "_owner",
-                        "type": "address"
-                    }
-                ],
-                "name": "balanceOf",
-                "outputs": [
-                    {
-                        "name": "",
-                        "type": "uint256"
-                    }
-                ],
-                "payable": false,
-                "type": "function"
-            },
-            {
-                "constant": true,
-                "inputs": [],
-                "name": "symbol",
-                "outputs": [
-                    {
-                        "name": "",
-                        "type": "string"
-                    }
-                ],
-                "payable": false,
-                "type": "function"
-            },
-            {
-                "constant": false,
-                "inputs": [
-                    {
-                        "name": "_to",
-                        "type": "address"
-                    },
-                    {
-                        "name": "_value",
-                        "type": "uint256"
-                    }
-                ],
-                "name": "transfer",
-                "outputs": [
-                    {
-                        "name": "",
-                        "type": "bool"
-                    }
-                ],
-                "payable": false,
-                "type": "function"
-            },
-            {
-                "constant": true,
-                "inputs": [
-                    {
-                        "name": "_owner",
-                        "type": "address"
-                    },
-                    {
-                        "name": "_spender",
-                        "type": "address"
-                    }
-                ],
-                "name": "allowance",
-                "outputs": [
-                    {
-                        "name": "",
-                        "type": "uint256"
-                    }
-                ],
-                "payable": false,
-                "type": "function"
-            },
-            {
-                "inputs": [],
-                "payable": false,
-                "type": "constructor"
-            },
-            {
-                "anonymous": false,
-                "inputs": [
-                    {
-                        "indexed": true,
-                        "name": "_from",
-                        "type": "address"
-                    },
-                    {
-                        "indexed": true,
-                        "name": "_to",
-                        "type": "address"
-                    },
-                    {
-                        "indexed": false,
-                        "name": "_value",
-                        "type": "uint256"
-                    }
-                ],
-                "name": "Transfer",
-                "type": "event"
-            },
-            {
-                "anonymous": false,
-                "inputs": [
-                    {
-                        "indexed": true,
-                        "name": "_owner",
-                        "type": "address"
-                    },
-                    {
-                        "indexed": true,
-                        "name": "_spender",
-                        "type": "address"
-                    },
-                    {
-                        "indexed": false,
-                        "name": "_value",
-                        "type": "uint256"
-                    }
-                ],
-                "name": "Approval",
-                "type": "event"
-            }
-        ],
-        "devdoc": {
-            "methods": {
-                "transferFrom(address,address,uint256)": {
-                    "details":
-                        "ERC20 transferFrom, modified such that an allowance of MAX_UINT represents an unlimited allowance.",
-                    "params": {
-                        "_from": "Address to transfer from.",
-                        "_to": "Address to transfer to.",
-                        "_value": "Amount to transfer."
-                    },
-                    "return": "Success of transfer."
-                }
-            }
-        },
-        "evm": {
-            "assembly":
-                "    /* \"2.0.0/tokens/ZRXToken/ZRXToken.sol\":795:1242  contract ZRXToken is UnlimitedAllowanceToken {... */\n  mstore(0x40, 0x60)\n    /* \"2.0.0/tokens/ZRXToken/ZRXToken.sol\":958:964  10**27 */\n  0x33b2e3c9fd0803ce8000000\n    /* \"2.0.0/tokens/ZRXToken/ZRXToken.sol\":932:964  uint public totalSupply = 10**27 */\n  0x3\n  sstore\n    /* \"2.0.0/tokens/ZRXToken/ZRXToken.sol\":1150:1240  function ZRXToken()... */\n  jumpi(tag_1, iszero(callvalue))\n  invalid\ntag_1:\ntag_2:\n    /* \"2.0.0/tokens/ZRXToken/ZRXToken.sol\":1222:1233  totalSupply */\n  sload(0x3)\n  sub(exp(0x2, 0xa0), 0x1)\n    /* \"2.0.0/tokens/ZRXToken/ZRXToken.sol\":1208:1218  msg.sender */\n  caller\n    /* \"2.0.0/tokens/ZRXToken/ZRXToken.sol\":1199:1219  balances[msg.sender] */\n  and\n    /* \"2.0.0/tokens/ZRXToken/ZRXToken.sol\":1199:1207  balances */\n  0x0\n    /* \"2.0.0/tokens/ZRXToken/ZRXToken.sol\":1199:1219  balances[msg.sender] */\n  swap1\n  dup2\n  mstore\n  0x20\n  dup2\n  swap1\n  mstore\n  0x40\n  swap1\n  sha3\n    /* \"2.0.0/tokens/ZRXToken/ZRXToken.sol\":1199:1233  balances[msg.sender] = totalSupply */\n  sstore\n    /* \"2.0.0/tokens/ZRXToken/ZRXToken.sol\":1150:1240  function ZRXToken()... */\ntag_3:\n    /* \"2.0.0/tokens/ZRXToken/ZRXToken.sol\":795:1242  contract ZRXToken is UnlimitedAllowanceToken {... */\ntag_4:\n  dataSize(sub_0)\n  dup1\n  dataOffset(sub_0)\n  0x0\n  codecopy\n  0x0\n  return\nstop\n\nsub_0: assembly {\n        /* \"2.0.0/tokens/ZRXToken/ZRXToken.sol\":795:1242  contract ZRXToken is UnlimitedAllowanceToken {... */\n      mstore(0x40, 0x60)\n      jumpi(tag_1, iszero(calldatasize))\n      and(div(calldataload(0x0), 0x100000000000000000000000000000000000000000000000000000000), 0xffffffff)\n      0x6fdde03\n      dup2\n      eq\n      tag_2\n      jumpi\n      dup1\n      0x95ea7b3\n      eq\n      tag_3\n      jumpi\n      dup1\n      0x18160ddd\n      eq\n      tag_4\n      jumpi\n      dup1\n      0x23b872dd\n      eq\n      tag_5\n      jumpi\n      dup1\n      0x313ce567\n      eq\n      tag_6\n      jumpi\n      dup1\n      0x70a08231\n      eq\n      tag_7\n      jumpi\n      dup1\n      0x95d89b41\n      eq\n      tag_8\n      jumpi\n      dup1\n      0xa9059cbb\n      eq\n      tag_9\n      jumpi\n      dup1\n      0xdd62ed3e\n      eq\n      tag_10\n      jumpi\n    tag_1:\n      invalid\n        /* \"2.0.0/tokens/ZRXToken/ZRXToken.sol\":1009:1058  string constant public name = \"0x Protocol Token\" */\n    tag_2:\n      jumpi(tag_11, iszero(callvalue))\n      invalid\n    tag_11:\n      tag_12\n      jump(tag_13)\n    tag_12:\n      0x40\n      dup1\n      mload\n      0x20\n      dup1\n      dup3\n      mstore\n      dup4\n      mload\n      dup2\n      dup4\n      add\n      mstore\n      dup4\n      mload\n      swap2\n      swap3\n      dup4\n      swap3\n      swap1\n      dup4\n      add\n      swap2\n      dup6\n      add\n      swap1\n      dup1\n      dup4\n      dup4\n        /* \"--CODEGEN--\":18:20   */\n      dup3\n      iszero\n        /* \"--CODEGEN--\":13:16   */\n      tag_14\n        /* \"--CODEGEN--\":7:12   */\n      jumpi\n        /* \"--CODEGEN--\":32:37   */\n    tag_15:\n        /* \"--CODEGEN--\":59:62   */\n      dup1\n        /* \"--CODEGEN--\":53:58   */\n      mload\n        /* \"--CODEGEN--\":48:51   */\n      dup3\n        /* \"--CODEGEN--\":41:47   */\n      mstore\n        /* \"--CODEGEN--\":93:95   */\n      0x20\n        /* \"--CODEGEN--\":88:91   */\n      dup4\n        /* \"--CODEGEN--\":85:87   */\n      gt\n        /* \"--CODEGEN--\":78:84   */\n      iszero\n        /* \"--CODEGEN--\":73:76   */\n      tag_14\n        /* \"--CODEGEN--\":67:72   */\n      jumpi\n        /* \"--CODEGEN--\":152:155   */\n      0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0\n      swap1\n      swap3\n      add\n      swap2\n        /* \"--CODEGEN--\":117:119   */\n      0x20\n        /* \"--CODEGEN--\":108:111   */\n      swap2\n      dup3\n      add\n      swap2\n        /* \"--CODEGEN--\":130:133   */\n      add\n        /* \"--CODEGEN--\":172:177   */\n      tag_15\n        /* \"--CODEGEN--\":167:171   */\n      jump\n        /* \"--CODEGEN--\":181:184   */\n    tag_14:\n        /* \"--CODEGEN--\":3:189   */\n      pop\n      pop\n      pop\n      swap1\n      pop\n      swap1\n      dup2\n      add\n      swap1\n      0x1f\n      and\n      dup1\n      iszero\n      tag_16\n      jumpi\n      dup1\n      dup3\n      sub\n      dup1\n      mload\n      0x1\n      dup4\n      0x20\n      sub\n      0x100\n      exp\n      sub\n      not\n      and\n      dup2\n      mstore\n      0x20\n      add\n      swap2\n      pop\n    tag_16:\n      pop\n      swap3\n      pop\n      pop\n      pop\n      mload(0x40)\n      dup1\n      swap2\n      sub\n      swap1\n      return\n        /* \"1.0.0/ERC20Token/ERC20Token_v1.sol\":1087:1274   */\n    tag_3:\n      jumpi(tag_17, iszero(callvalue))\n      invalid\n    tag_17:\n      tag_18\n      and(calldataload(0x4), 0xffffffffffffffffffffffffffffffffffffffff)\n      calldataload(0x24)\n      jump(tag_19)\n    tag_18:\n      0x40\n      dup1\n      mload\n      swap2\n      iszero\n      iszero\n      dup3\n      mstore\n      mload\n      swap1\n      dup2\n      swap1\n      sub\n      0x20\n      add\n      swap1\n      return\n        /* \"2.0.0/tokens/ZRXToken/ZRXToken.sol\":932:964  uint public totalSupply = 10**27 */\n    tag_4:\n      jumpi(tag_20, iszero(callvalue))\n      invalid\n    tag_20:\n      tag_21\n      jump(tag_22)\n    tag_21:\n      0x40\n      dup1\n      mload\n      swap2\n      dup3\n      mstore\n      mload\n      swap1\n      dup2\n      swap1\n      sub\n      0x20\n      add\n      swap1\n      return\n        /* \"1.0.0/UnlimitedAllowanceToken/UnlimitedAllowanceToken_v1.sol\":1066:1675   */\n    tag_5:\n      jumpi(tag_23, iszero(callvalue))\n      invalid\n    tag_23:\n      tag_18\n      0xffffffffffffffffffffffffffffffffffffffff\n      calldataload(0x4)\n      dup2\n      and\n      swap1\n      calldataload(0x24)\n      and\n      calldataload(0x44)\n      jump(tag_25)\n    tag_24:\n      0x40\n      dup1\n      mload\n      swap2\n      iszero\n      iszero\n      dup3\n      mstore\n      mload\n      swap1\n      dup2\n      swap1\n      sub\n      0x20\n      add\n      swap1\n      return\n        /* \"2.0.0/tokens/ZRXToken/ZRXToken.sol\":891:926  uint8 constant public decimals = 18 */\n    tag_6:\n      jumpi(tag_26, iszero(callvalue))\n      invalid\n    tag_26:\n      tag_27\n      jump(tag_28)\n    tag_27:\n      0x40\n      dup1\n      mload\n      0xff\n      swap1\n      swap3\n      and\n      dup3\n      mstore\n      mload\n      swap1\n      dup2\n      swap1\n      sub\n      0x20\n      add\n      swap1\n      return\n        /* \"1.0.0/ERC20Token/ERC20Token_v1.sol\":982:1081   */\n    tag_7:\n      jumpi(tag_29, iszero(callvalue))\n      invalid\n    tag_29:\n      tag_21\n      and(calldataload(0x4), 0xffffffffffffffffffffffffffffffffffffffff)\n      jump(tag_31)\n    tag_30:\n      0x40\n      dup1\n      mload\n      swap2\n      dup3\n      mstore\n      mload\n      swap1\n      dup2\n      swap1\n      sub\n      0x20\n      add\n      swap1\n      return\n        /* \"2.0.0/tokens/ZRXToken/ZRXToken.sol\":1064:1101  string constant public symbol = \"ZRX\" */\n    tag_8:\n      jumpi(tag_32, iszero(callvalue))\n      invalid\n    tag_32:\n      tag_12\n      jump(tag_34)\n    tag_33:\n      0x40\n      dup1\n      mload\n      0x20\n      dup1\n      dup3\n      mstore\n      dup4\n      mload\n      dup2\n      dup4\n      add\n      mstore\n      dup4\n      mload\n      swap2\n      swap3\n      dup4\n      swap3\n      swap1\n      dup4\n      add\n      swap2\n      dup6\n      add\n      swap1\n      dup1\n      dup4\n      dup4\n        /* \"--CODEGEN--\":18:20   */\n      dup3\n      iszero\n        /* \"--CODEGEN--\":13:16   */\n      tag_14\n        /* \"--CODEGEN--\":7:12   */\n      jumpi\n        /* \"--CODEGEN--\":32:37   */\n    tag_36:\n        /* \"--CODEGEN--\":59:62   */\n      dup1\n        /* \"--CODEGEN--\":53:58   */\n      mload\n        /* \"--CODEGEN--\":48:51   */\n      dup3\n        /* \"--CODEGEN--\":41:47   */\n      mstore\n        /* \"--CODEGEN--\":93:95   */\n      0x20\n        /* \"--CODEGEN--\":88:91   */\n      dup4\n        /* \"--CODEGEN--\":85:87   */\n      gt\n        /* \"--CODEGEN--\":78:84   */\n      iszero\n        /* \"--CODEGEN--\":73:76   */\n      tag_14\n        /* \"--CODEGEN--\":67:72   */\n      jumpi\n        /* \"--CODEGEN--\":152:155   */\n      0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0\n      swap1\n      swap3\n      add\n      swap2\n        /* \"--CODEGEN--\":117:119   */\n      0x20\n        /* \"--CODEGEN--\":108:111   */\n      swap2\n      dup3\n      add\n      swap2\n        /* \"--CODEGEN--\":130:133   */\n      add\n        /* \"--CODEGEN--\":172:177   */\n      tag_15\n        /* \"--CODEGEN--\":167:171   */\n      jump\n        /* \"--CODEGEN--\":181:184   */\n    tag_35:\n        /* \"--CODEGEN--\":3:189   */\n      pop\n      pop\n      pop\n      swap1\n      pop\n      swap1\n      dup2\n      add\n      swap1\n      0x1f\n      and\n      dup1\n      iszero\n      tag_16\n      jumpi\n      dup1\n      dup3\n      sub\n      dup1\n      mload\n      0x1\n      dup4\n      0x20\n      sub\n      0x100\n      exp\n      sub\n      not\n      and\n      dup2\n      mstore\n      0x20\n      add\n      swap2\n      pop\n    tag_37:\n      pop\n      swap3\n      pop\n      pop\n      pop\n      mload(0x40)\n      dup1\n      swap2\n      sub\n      swap1\n      return\n        /* \"1.0.0/ERC20Token/ERC20Token_v1.sol\":125:535   */\n    tag_9:\n      jumpi(tag_38, iszero(callvalue))\n      invalid\n    tag_38:\n      tag_18\n      and(calldataload(0x4), 0xffffffffffffffffffffffffffffffffffffffff)\n      calldataload(0x24)\n      jump(tag_40)\n    tag_39:\n      0x40\n      dup1\n      mload\n      swap2\n      iszero\n      iszero\n      dup3\n      mstore\n      mload\n      swap1\n      dup2\n      swap1\n      sub\n      0x20\n      add\n      swap1\n      return\n        /* \"1.0.0/ERC20Token/ERC20Token_v1.sol\":1280:1406   */\n    tag_10:\n      jumpi(tag_41, iszero(callvalue))\n      invalid\n    tag_41:\n      tag_21\n      0xffffffffffffffffffffffffffffffffffffffff\n      calldataload(0x4)\n      dup2\n      and\n      swap1\n      calldataload(0x24)\n      and\n      jump(tag_43)\n    tag_42:\n      0x40\n      dup1\n      mload\n      swap2\n      dup3\n      mstore\n      mload\n      swap1\n      dup2\n      swap1\n      sub\n      0x20\n      add\n      swap1\n      return\n        /* \"2.0.0/tokens/ZRXToken/ZRXToken.sol\":1009:1058  string constant public name = \"0x Protocol Token\" */\n    tag_13:\n      0x40\n      dup1\n      mload\n      dup1\n      dup3\n      add\n      swap1\n      swap2\n      mstore\n      0x11\n      dup2\n      mstore\n      0x30782050726f746f636f6c20546f6b656e000000000000000000000000000000\n      0x20\n      dup3\n      add\n      mstore\n      dup2\n      jump\t// out\n        /* \"1.0.0/ERC20Token/ERC20Token_v1.sol\":1087:1274   */\n    tag_19:\n        /* \"1.0.0/ERC20Token/ERC20Token_v1.sol\":1160:1179   */\n      0xffffffffffffffffffffffffffffffffffffffff\n        /* \"1.0.0/ERC20Token/ERC20Token_v1.sol\":1168:1178   */\n      caller\n        /* \"1.0.0/ERC20Token/ERC20Token_v1.sol\":1160:1179   */\n      dup2\n      and\n        /* \"1.0.0/ERC20Token/ERC20Token_v1.sol\":1144:1148   */\n      0x0\n        /* \"1.0.0/ERC20Token/ERC20Token_v1.sol\":1160:1179   */\n      dup2\n      dup2\n      mstore\n        /* \"1.0.0/ERC20Token/ERC20Token_v1.sol\":1160:1167   */\n      0x1\n        /* \"1.0.0/ERC20Token/ERC20Token_v1.sol\":1160:1179   */\n      0x20\n      swap1\n      dup2\n      mstore\n      0x40\n      dup1\n      dup4\n      sha3\n        /* \"1.0.0/ERC20Token/ERC20Token_v1.sol\":1160:1189   */\n      swap5\n      dup8\n      and\n      dup1\n      dup5\n      mstore\n      swap5\n      dup3\n      mstore\n      dup1\n      dup4\n      sha3\n        /* \"1.0.0/ERC20Token/ERC20Token_v1.sol\":1160:1198   */\n      dup7\n      swap1\n      sstore\n        /* \"1.0.0/ERC20Token/ERC20Token_v1.sol\":1208:1246   */\n      dup1\n      mload\n      dup7\n      dup2\n      mstore\n      swap1\n      mload\n        /* \"1.0.0/ERC20Token/ERC20Token_v1.sol\":1144:1148   */\n      swap3\n      swap5\n        /* \"1.0.0/ERC20Token/ERC20Token_v1.sol\":1160:1189   */\n      swap4\n        /* \"1.0.0/ERC20Token/ERC20Token_v1.sol\":1160:1179   */\n      swap3\n        /* \"1.0.0/ERC20Token/ERC20Token_v1.sol\":1208:1246   */\n      0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925\n      swap3\n      swap2\n      dup2\n      swap1\n      sub\n      swap1\n      swap2\n      add\n      swap1\n      log3\n      pop\n        /* \"1.0.0/ERC20Token/ERC20Token_v1.sol\":1263:1267   */\n      0x1\n        /* \"1.0.0/ERC20Token/ERC20Token_v1.sol\":1087:1274   */\n    tag_44:\n      swap3\n      swap2\n      pop\n      pop\n      jump\t// out\n        /* \"2.0.0/tokens/ZRXToken/ZRXToken.sol\":932:964  uint public totalSupply = 10**27 */\n    tag_22:\n      sload(0x3)\n      dup2\n      jump\t// out\n        /* \"1.0.0/UnlimitedAllowanceToken/UnlimitedAllowanceToken_v1.sol\":1066:1675   */\n    tag_25:\n        /* \"1.0.0/UnlimitedAllowanceToken/UnlimitedAllowanceToken_v1.sol\":1198:1212   */\n      0xffffffffffffffffffffffffffffffffffffffff\n      dup1\n      dup5\n      and\n        /* \"1.0.0/UnlimitedAllowanceToken/UnlimitedAllowanceToken_v1.sol\":1161:1165   */\n      0x0\n        /* \"1.0.0/UnlimitedAllowanceToken/UnlimitedAllowanceToken_v1.sol\":1198:1212   */\n      dup2\n      dup2\n      mstore\n        /* \"1.0.0/UnlimitedAllowanceToken/UnlimitedAllowanceToken_v1.sol\":1198:1205   */\n      0x1\n        /* \"1.0.0/UnlimitedAllowanceToken/UnlimitedAllowanceToken_v1.sol\":1198:1212   */\n      0x20\n      swap1\n      dup2\n      mstore\n      0x40\n      dup1\n      dup4\n      sha3\n        /* \"1.0.0/UnlimitedAllowanceToken/UnlimitedAllowanceToken_v1.sol\":1213:1223   */\n      caller\n        /* \"1.0.0/UnlimitedAllowanceToken/UnlimitedAllowanceToken_v1.sol\":1198:1224   */\n      swap1\n      swap6\n      and\n      dup4\n      mstore\n      swap4\n      dup2\n      mstore\n      dup4\n      dup3\n      sha3\n      sload\n        /* \"1.0.0/UnlimitedAllowanceToken/UnlimitedAllowanceToken_v1.sol\":1238:1253   */\n      swap3\n      dup3\n      mstore\n      dup2\n      swap1\n      mstore\n      swap2\n      dup3\n      sha3\n      sload\n        /* \"1.0.0/UnlimitedAllowanceToken/UnlimitedAllowanceToken_v1.sol\":1238:1263   */\n      dup4\n      swap1\n      lt\n      dup1\n      iszero\n      swap1\n        /* \"1.0.0/UnlimitedAllowanceToken/UnlimitedAllowanceToken_v1.sol\":1238:1298   */\n      tag_46\n      jumpi\n      pop\n        /* \"1.0.0/UnlimitedAllowanceToken/UnlimitedAllowanceToken_v1.sol\":1292:1298   */\n      dup3\n        /* \"1.0.0/UnlimitedAllowanceToken/UnlimitedAllowanceToken_v1.sol\":1279:1288   */\n      dup2\n        /* \"1.0.0/UnlimitedAllowanceToken/UnlimitedAllowanceToken_v1.sol\":1279:1298   */\n      lt\n      iszero\n        /* \"1.0.0/UnlimitedAllowanceToken/UnlimitedAllowanceToken_v1.sol\":1238:1298   */\n    tag_46:\n        /* \"1.0.0/UnlimitedAllowanceToken/UnlimitedAllowanceToken_v1.sol\":1238:1353   */\n      dup1\n      iszero\n      tag_47\n      jumpi\n      pop\n        /* \"1.0.0/UnlimitedAllowanceToken/UnlimitedAllowanceToken_v1.sol\":1340:1353   */\n      0xffffffffffffffffffffffffffffffffffffffff\n      dup5\n      and\n        /* \"1.0.0/UnlimitedAllowanceToken/UnlimitedAllowanceToken_v1.sol\":1340:1348   */\n      0x0\n        /* \"1.0.0/UnlimitedAllowanceToken/UnlimitedAllowanceToken_v1.sol\":1340:1353   */\n      swap1\n      dup2\n      mstore\n      0x20\n      dup2\n      swap1\n      mstore\n      0x40\n      swap1\n      sha3\n      sload\n        /* \"1.0.0/UnlimitedAllowanceToken/UnlimitedAllowanceToken_v1.sol\":1314:1336   */\n      dup4\n      dup2\n      add\n        /* \"1.0.0/UnlimitedAllowanceToken/UnlimitedAllowanceToken_v1.sol\":1314:1353   */\n      lt\n      iszero\n        /* \"1.0.0/UnlimitedAllowanceToken/UnlimitedAllowanceToken_v1.sol\":1238:1353   */\n    tag_47:\n        /* \"1.0.0/UnlimitedAllowanceToken/UnlimitedAllowanceToken_v1.sol\":1234:1669   */\n      iszero\n      tag_48\n      jumpi\n        /* \"1.0.0/UnlimitedAllowanceToken/UnlimitedAllowanceToken_v1.sol\":1378:1391   */\n      0xffffffffffffffffffffffffffffffffffffffff\n      dup1\n      dup6\n      and\n        /* \"1.0.0/UnlimitedAllowanceToken/UnlimitedAllowanceToken_v1.sol\":1378:1386   */\n      0x0\n        /* \"1.0.0/UnlimitedAllowanceToken/UnlimitedAllowanceToken_v1.sol\":1378:1391   */\n      swap1\n      dup2\n      mstore\n      0x20\n      dup2\n      swap1\n      mstore\n      0x40\n      dup1\n      dup3\n      sha3\n        /* \"1.0.0/UnlimitedAllowanceToken/UnlimitedAllowanceToken_v1.sol\":1378:1401   */\n      dup1\n      sload\n      dup8\n      add\n      swap1\n      sstore\n        /* \"1.0.0/UnlimitedAllowanceToken/UnlimitedAllowanceToken_v1.sol\":1415:1430   */\n      swap2\n      dup8\n      and\n      dup2\n      mstore\n      sha3\n        /* \"1.0.0/UnlimitedAllowanceToken/UnlimitedAllowanceToken_v1.sol\":1415:1440   */\n      dup1\n      sload\n      dup5\n      swap1\n      sub\n      swap1\n      sstore\n        /* \"1.0.0/UnlimitedAllowanceToken/UnlimitedAllowanceToken_v1.sol\":768:778   */\n      0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n        /* \"1.0.0/UnlimitedAllowanceToken/UnlimitedAllowanceToken_v1.sol\":1458:1478   */\n      dup2\n      lt\n        /* \"1.0.0/UnlimitedAllowanceToken/UnlimitedAllowanceToken_v1.sol\":1454:1549   */\n      iszero\n      tag_49\n      jumpi\n        /* \"1.0.0/UnlimitedAllowanceToken/UnlimitedAllowanceToken_v1.sol\":1498:1512   */\n      0xffffffffffffffffffffffffffffffffffffffff\n      dup1\n      dup7\n      and\n      0x0\n      swap1\n      dup2\n      mstore\n        /* \"1.0.0/UnlimitedAllowanceToken/UnlimitedAllowanceToken_v1.sol\":1498:1505   */\n      0x1\n        /* \"1.0.0/UnlimitedAllowanceToken/UnlimitedAllowanceToken_v1.sol\":1498:1512   */\n      0x20\n      swap1\n      dup2\n      mstore\n      0x40\n      dup1\n      dup4\n      sha3\n        /* \"1.0.0/UnlimitedAllowanceToken/UnlimitedAllowanceToken_v1.sol\":1513:1523   */\n      caller\n        /* \"1.0.0/UnlimitedAllowanceToken/UnlimitedAllowanceToken_v1.sol\":1498:1524   */\n      swap1\n      swap5\n      and\n      dup4\n      mstore\n      swap3\n      swap1\n      mstore\n      sha3\n        /* \"1.0.0/UnlimitedAllowanceToken/UnlimitedAllowanceToken_v1.sol\":1498:1534   */\n      dup1\n      sload\n      dup5\n      swap1\n      sub\n      swap1\n      sstore\n        /* \"1.0.0/UnlimitedAllowanceToken/UnlimitedAllowanceToken_v1.sol\":1454:1549   */\n    tag_49:\n        /* \"1.0.0/UnlimitedAllowanceToken/UnlimitedAllowanceToken_v1.sol\":1578:1581   */\n      dup4\n        /* \"1.0.0/UnlimitedAllowanceToken/UnlimitedAllowanceToken_v1.sol\":1562:1590   */\n      0xffffffffffffffffffffffffffffffffffffffff\n      and\n        /* \"1.0.0/UnlimitedAllowanceToken/UnlimitedAllowanceToken_v1.sol\":1571:1576   */\n      dup6\n        /* \"1.0.0/UnlimitedAllowanceToken/UnlimitedAllowanceToken_v1.sol\":1562:1590   */\n      0xffffffffffffffffffffffffffffffffffffffff\n      and\n      0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef\n        /* \"1.0.0/UnlimitedAllowanceToken/UnlimitedAllowanceToken_v1.sol\":1583:1589   */\n      dup6\n        /* \"1.0.0/UnlimitedAllowanceToken/UnlimitedAllowanceToken_v1.sol\":1562:1590   */\n      mload(0x40)\n      dup1\n      dup3\n      dup2\n      mstore\n      0x20\n      add\n      swap2\n      pop\n      pop\n      mload(0x40)\n      dup1\n      swap2\n      sub\n      swap1\n      log3\n        /* \"1.0.0/UnlimitedAllowanceToken/UnlimitedAllowanceToken_v1.sol\":1611:1615   */\n      0x1\n        /* \"1.0.0/UnlimitedAllowanceToken/UnlimitedAllowanceToken_v1.sol\":1604:1615   */\n      swap2\n      pop\n      jump(tag_50)\n        /* \"1.0.0/UnlimitedAllowanceToken/UnlimitedAllowanceToken_v1.sol\":1234:1669   */\n    tag_48:\n        /* \"1.0.0/UnlimitedAllowanceToken/UnlimitedAllowanceToken_v1.sol\":1653:1658   */\n      0x0\n        /* \"1.0.0/UnlimitedAllowanceToken/UnlimitedAllowanceToken_v1.sol\":1646:1658   */\n      swap2\n      pop\n        /* \"1.0.0/UnlimitedAllowanceToken/UnlimitedAllowanceToken_v1.sol\":1234:1669   */\n    tag_50:\n        /* \"1.0.0/UnlimitedAllowanceToken/UnlimitedAllowanceToken_v1.sol\":1066:1675   */\n    tag_45:\n      pop\n      swap4\n      swap3\n      pop\n      pop\n      pop\n      jump\t// out\n        /* \"2.0.0/tokens/ZRXToken/ZRXToken.sol\":891:926  uint8 constant public decimals = 18 */\n    tag_28:\n        /* \"2.0.0/tokens/ZRXToken/ZRXToken.sol\":924:926  18 */\n      0x12\n        /* \"2.0.0/tokens/ZRXToken/ZRXToken.sol\":891:926  uint8 constant public decimals = 18 */\n      dup2\n      jump\t// out\n        /* \"1.0.0/ERC20Token/ERC20Token_v1.sol\":982:1081   */\n    tag_31:\n        /* \"1.0.0/ERC20Token/ERC20Token_v1.sol\":1058:1074   */\n      0xffffffffffffffffffffffffffffffffffffffff\n      dup2\n      and\n        /* \"1.0.0/ERC20Token/ERC20Token_v1.sol\":1035:1039   */\n      0x0\n        /* \"1.0.0/ERC20Token/ERC20Token_v1.sol\":1058:1074   */\n      swap1\n      dup2\n      mstore\n      0x20\n      dup2\n      swap1\n      mstore\n      0x40\n      swap1\n      sha3\n      sload\n        /* \"1.0.0/ERC20Token/ERC20Token_v1.sol\":982:1081   */\n    tag_51:\n      swap2\n      swap1\n      pop\n      jump\t// out\n        /* \"2.0.0/tokens/ZRXToken/ZRXToken.sol\":1064:1101  string constant public symbol = \"ZRX\" */\n    tag_34:\n      0x40\n      dup1\n      mload\n      dup1\n      dup3\n      add\n      swap1\n      swap2\n      mstore\n      0x3\n      dup2\n      mstore\n      0x5a52580000000000000000000000000000000000000000000000000000000000\n      0x20\n      dup3\n      add\n      mstore\n      dup2\n      jump\t// out\n        /* \"1.0.0/ERC20Token/ERC20Token_v1.sol\":125:535   */\n    tag_40:\n        /* \"1.0.0/ERC20Token/ERC20Token_v1.sol\":267:287   */\n      0xffffffffffffffffffffffffffffffffffffffff\n        /* \"1.0.0/ERC20Token/ERC20Token_v1.sol\":276:286   */\n      caller\n        /* \"1.0.0/ERC20Token/ERC20Token_v1.sol\":267:287   */\n      and\n        /* \"1.0.0/ERC20Token/ERC20Token_v1.sol\":178:182   */\n      0x0\n        /* \"1.0.0/ERC20Token/ERC20Token_v1.sol\":267:287   */\n      swap1\n      dup2\n      mstore\n      0x20\n      dup2\n      swap1\n      mstore\n      0x40\n      dup2\n      sha3\n      sload\n        /* \"1.0.0/ERC20Token/ERC20Token_v1.sol\":267:297   */\n      dup3\n      swap1\n      lt\n      dup1\n      iszero\n      swap1\n        /* \"1.0.0/ERC20Token/ERC20Token_v1.sol\":267:340   */\n      tag_53\n      jumpi\n      pop\n        /* \"1.0.0/ERC20Token/ERC20Token_v1.sol\":327:340   */\n      0xffffffffffffffffffffffffffffffffffffffff\n      dup4\n      and\n        /* \"1.0.0/ERC20Token/ERC20Token_v1.sol\":327:335   */\n      0x0\n        /* \"1.0.0/ERC20Token/ERC20Token_v1.sol\":327:340   */\n      swap1\n      dup2\n      mstore\n      0x20\n      dup2\n      swap1\n      mstore\n      0x40\n      swap1\n      sha3\n      sload\n        /* \"1.0.0/ERC20Token/ERC20Token_v1.sol\":301:323   */\n      dup3\n      dup2\n      add\n        /* \"1.0.0/ERC20Token/ERC20Token_v1.sol\":301:340   */\n      lt\n      iszero\n        /* \"1.0.0/ERC20Token/ERC20Token_v1.sol\":267:340   */\n    tag_53:\n        /* \"1.0.0/ERC20Token/ERC20Token_v1.sol\":263:529   */\n      iszero\n      tag_54\n      jumpi\n        /* \"1.0.0/ERC20Token/ERC20Token_v1.sol\":356:376   */\n      0xffffffffffffffffffffffffffffffffffffffff\n        /* \"1.0.0/ERC20Token/ERC20Token_v1.sol\":365:375   */\n      caller\n        /* \"1.0.0/ERC20Token/ERC20Token_v1.sol\":356:376   */\n      dup2\n      and\n        /* \"1.0.0/ERC20Token/ERC20Token_v1.sol\":356:364   */\n      0x0\n        /* \"1.0.0/ERC20Token/ERC20Token_v1.sol\":356:376   */\n      dup2\n      dup2\n      mstore\n      0x20\n      dup2\n      dup2\n      mstore\n      0x40\n      dup1\n      dup4\n      sha3\n        /* \"1.0.0/ERC20Token/ERC20Token_v1.sol\":356:386   */\n      dup1\n      sload\n      dup9\n      swap1\n      sub\n      swap1\n      sstore\n        /* \"1.0.0/ERC20Token/ERC20Token_v1.sol\":400:413   */\n      swap4\n      dup8\n      and\n      dup1\n      dup4\n      mstore\n      swap2\n      dup5\n      swap1\n      sha3\n        /* \"1.0.0/ERC20Token/ERC20Token_v1.sol\":400:423   */\n      dup1\n      sload\n      dup8\n      add\n      swap1\n      sstore\n        /* \"1.0.0/ERC20Token/ERC20Token_v1.sol\":437:470   */\n      dup4\n      mload\n      dup7\n      dup2\n      mstore\n      swap4\n      mload\n        /* \"1.0.0/ERC20Token/ERC20Token_v1.sol\":400:413   */\n      swap2\n      swap4\n        /* \"1.0.0/ERC20Token/ERC20Token_v1.sol\":437:470   */\n      0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef\n      swap3\n      swap1\n      dup2\n      swap1\n      sub\n      swap1\n      swap2\n      add\n      swap1\n      log3\n      pop\n        /* \"1.0.0/ERC20Token/ERC20Token_v1.sol\":491:495   */\n      0x1\n        /* \"1.0.0/ERC20Token/ERC20Token_v1.sol\":484:495   */\n      jump(tag_44)\n        /* \"1.0.0/ERC20Token/ERC20Token_v1.sol\":263:529   */\n    tag_54:\n      pop\n        /* \"1.0.0/ERC20Token/ERC20Token_v1.sol\":521:526   */\n      0x0\n        /* \"1.0.0/ERC20Token/ERC20Token_v1.sol\":514:526   */\n      jump(tag_44)\n        /* \"1.0.0/ERC20Token/ERC20Token_v1.sol\":263:529   */\n    tag_55:\n        /* \"1.0.0/ERC20Token/ERC20Token_v1.sol\":125:535   */\n    tag_52:\n      swap3\n      swap2\n      pop\n      pop\n      jump\t// out\n        /* \"1.0.0/ERC20Token/ERC20Token_v1.sol\":1280:1406   */\n    tag_43:\n        /* \"1.0.0/ERC20Token/ERC20Token_v1.sol\":1374:1389   */\n      0xffffffffffffffffffffffffffffffffffffffff\n      dup1\n      dup4\n      and\n        /* \"1.0.0/ERC20Token/ERC20Token_v1.sol\":1351:1355   */\n      0x0\n        /* \"1.0.0/ERC20Token/ERC20Token_v1.sol\":1374:1389   */\n      swap1\n      dup2\n      mstore\n        /* \"1.0.0/ERC20Token/ERC20Token_v1.sol\":1374:1381   */\n      0x1\n        /* \"1.0.0/ERC20Token/ERC20Token_v1.sol\":1374:1389   */\n      0x20\n      swap1\n      dup2\n      mstore\n      0x40\n      dup1\n      dup4\n      sha3\n        /* \"1.0.0/ERC20Token/ERC20Token_v1.sol\":1374:1399   */\n      swap4\n      dup6\n      and\n      dup4\n      mstore\n      swap3\n      swap1\n      mstore\n      sha3\n      sload\n        /* \"1.0.0/ERC20Token/ERC20Token_v1.sol\":1280:1406   */\n    tag_56:\n      swap3\n      swap2\n      pop\n      pop\n      jump\t// out\n}\n",
-            "bytecode": {
-                "linkReferences": {},
-                "object":
-                    "0x60606040526b033b2e3c9fd0803ce8000000600355341561001c57fe5b5b600354600160a060020a0333166000908152602081905260409020555b5b61078d8061004a6000396000f300606060405236156100965763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde038114610098578063095ea7b31461014657806318160ddd1461018657806323b872dd146101a8578063313ce567146101ee57806370a082311461021457806395d89b411461024f578063a9059cbb146102fd578063dd62ed3e1461033d575bfe5b34156100a057fe5b6100a861037e565b60408051602080825283518183015283519192839290830191850190808383821561010c575b80518252602083111561010c577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016100ce565b505050905090810190601f1680156101385780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561014e57fe5b61017273ffffffffffffffffffffffffffffffffffffffff600435166024356103b5565b604080519115158252519081900360200190f35b341561018e57fe5b61019661042d565b60408051918252519081900360200190f35b34156101b057fe5b61017273ffffffffffffffffffffffffffffffffffffffff60043581169060243516604435610433565b604080519115158252519081900360200190f35b34156101f657fe5b6101fe6105d4565b6040805160ff9092168252519081900360200190f35b341561021c57fe5b61019673ffffffffffffffffffffffffffffffffffffffff600435166105d9565b60408051918252519081900360200190f35b341561025757fe5b6100a8610605565b60408051602080825283518183015283519192839290830191850190808383821561010c575b80518252602083111561010c577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016100ce565b505050905090810190601f1680156101385780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561030557fe5b61017273ffffffffffffffffffffffffffffffffffffffff6004351660243561063c565b604080519115158252519081900360200190f35b341561034557fe5b61019673ffffffffffffffffffffffffffffffffffffffff60043581169060243516610727565b60408051918252519081900360200190f35b60408051808201909152601181527f30782050726f746f636f6c20546f6b656e000000000000000000000000000000602082015281565b73ffffffffffffffffffffffffffffffffffffffff338116600081815260016020908152604080832094871680845294825280832086905580518681529051929493927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060015b92915050565b60035481565b73ffffffffffffffffffffffffffffffffffffffff808416600081815260016020908152604080832033909516835293815283822054928252819052918220548390108015906104835750828110155b80156104b6575073ffffffffffffffffffffffffffffffffffffffff841660009081526020819052604090205483810110155b156105c65773ffffffffffffffffffffffffffffffffffffffff808516600090815260208190526040808220805487019055918716815220805484900390557fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8110156105585773ffffffffffffffffffffffffffffffffffffffff808616600090815260016020908152604080832033909416835292905220805484900390555b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a3600191506105cb565b600091505b5b509392505050565b601281565b73ffffffffffffffffffffffffffffffffffffffff81166000908152602081905260409020545b919050565b60408051808201909152600381527f5a52580000000000000000000000000000000000000000000000000000000000602082015281565b73ffffffffffffffffffffffffffffffffffffffff3316600090815260208190526040812054829010801590610699575073ffffffffffffffffffffffffffffffffffffffff831660009081526020819052604090205482810110155b156107185773ffffffffffffffffffffffffffffffffffffffff33811660008181526020818152604080832080548890039055938716808352918490208054870190558351868152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a3506001610427565b506000610427565b5b92915050565b73ffffffffffffffffffffffffffffffffffffffff8083166000908152600160209081526040808320938516835292905220545b929150505600a165627a7a723058208999c5329f53064aac58d4b553cb379a45bfca17e024506ff916637cfc36f7b20029",
-                "opcodes":
-                    "PUSH1 0x60 PUSH1 0x40 MSTORE PUSH12 0x33B2E3C9FD0803CE8000000 PUSH1 0x3 SSTORE CALLVALUE ISZERO PUSH2 0x1C JUMPI INVALID JUMPDEST JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB CALLER AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 SHA3 SSTORE JUMPDEST JUMPDEST PUSH2 0x78D DUP1 PUSH2 0x4A PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x60 PUSH1 0x40 MSTORE CALLDATASIZE ISZERO PUSH2 0x96 JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x6FDDE03 DUP2 EQ PUSH2 0x98 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x146 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x186 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x1A8 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x1EE JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x214 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x24F JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x2FD JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x33D JUMPI JUMPDEST INVALID JUMPDEST CALLVALUE ISZERO PUSH2 0xA0 JUMPI INVALID JUMPDEST PUSH2 0xA8 PUSH2 0x37E JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 ADD SWAP1 DUP1 DUP4 DUP4 DUP3 ISZERO PUSH2 0x10C JUMPI JUMPDEST DUP1 MLOAD DUP3 MSTORE PUSH1 0x20 DUP4 GT ISZERO PUSH2 0x10C JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0xCE JUMP JUMPDEST POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x138 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE ISZERO PUSH2 0x14E JUMPI INVALID JUMPDEST PUSH2 0x172 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x3B5 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE ISZERO PUSH2 0x18E JUMPI INVALID JUMPDEST PUSH2 0x196 PUSH2 0x42D JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE ISZERO PUSH2 0x1B0 JUMPI INVALID JUMPDEST PUSH2 0x172 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x433 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE ISZERO PUSH2 0x1F6 JUMPI INVALID JUMPDEST PUSH2 0x1FE PUSH2 0x5D4 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE ISZERO PUSH2 0x21C JUMPI INVALID JUMPDEST PUSH2 0x196 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x4 CALLDATALOAD AND PUSH2 0x5D9 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE ISZERO PUSH2 0x257 JUMPI INVALID JUMPDEST PUSH2 0xA8 PUSH2 0x605 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 ADD SWAP1 DUP1 DUP4 DUP4 DUP3 ISZERO PUSH2 0x10C JUMPI JUMPDEST DUP1 MLOAD DUP3 MSTORE PUSH1 0x20 DUP4 GT ISZERO PUSH2 0x10C JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0xCE JUMP JUMPDEST POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x138 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE ISZERO PUSH2 0x305 JUMPI INVALID JUMPDEST PUSH2 0x172 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x63C JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE ISZERO PUSH2 0x345 JUMPI INVALID JUMPDEST PUSH2 0x196 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH2 0x727 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x11 DUP2 MSTORE PUSH32 0x30782050726F746F636F6C20546F6B656E000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE DUP2 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF CALLER DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 SHA3 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE DUP1 DUP4 SHA3 DUP7 SWAP1 SSTORE DUP1 MLOAD DUP7 DUP2 MSTORE SWAP1 MLOAD SWAP3 SWAP5 SWAP4 SWAP3 PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP3 SWAP2 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP PUSH1 0x1 JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP5 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 SHA3 CALLER SWAP1 SWAP6 AND DUP4 MSTORE SWAP4 DUP2 MSTORE DUP4 DUP3 SHA3 SLOAD SWAP3 DUP3 MSTORE DUP2 SWAP1 MSTORE SWAP2 DUP3 SHA3 SLOAD DUP4 SWAP1 LT DUP1 ISZERO SWAP1 PUSH2 0x483 JUMPI POP DUP3 DUP2 LT ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x4B6 JUMPI POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 SHA3 SLOAD DUP4 DUP2 ADD LT ISZERO JUMPDEST ISZERO PUSH2 0x5C6 JUMPI PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP1 DUP3 SHA3 DUP1 SLOAD DUP8 ADD SWAP1 SSTORE SWAP2 DUP8 AND DUP2 MSTORE SHA3 DUP1 SLOAD DUP5 SWAP1 SUB SWAP1 SSTORE PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 LT ISZERO PUSH2 0x558 JUMPI PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 SHA3 CALLER SWAP1 SWAP5 AND DUP4 MSTORE SWAP3 SWAP1 MSTORE SHA3 DUP1 SLOAD DUP5 SWAP1 SUB SWAP1 SSTORE JUMPDEST DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP6 PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH1 0x1 SWAP2 POP PUSH2 0x5CB JUMP JUMPDEST PUSH1 0x0 SWAP2 POP JUMPDEST JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x12 DUP2 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 SHA3 SLOAD JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x3 DUP2 MSTORE PUSH32 0x5A52580000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE DUP2 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF CALLER AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP2 SHA3 SLOAD DUP3 SWAP1 LT DUP1 ISZERO SWAP1 PUSH2 0x699 JUMPI POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 SHA3 SLOAD DUP3 DUP2 ADD LT ISZERO JUMPDEST ISZERO PUSH2 0x718 JUMPI PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF CALLER DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 SHA3 DUP1 SLOAD DUP9 SWAP1 SUB SWAP1 SSTORE SWAP4 DUP8 AND DUP1 DUP4 MSTORE SWAP2 DUP5 SWAP1 SHA3 DUP1 SLOAD DUP8 ADD SWAP1 SSTORE DUP4 MLOAD DUP7 DUP2 MSTORE SWAP4 MLOAD SWAP2 SWAP4 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP3 SWAP1 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP PUSH1 0x1 PUSH2 0x427 JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0x427 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 SHA3 SWAP4 DUP6 AND DUP4 MSTORE SWAP3 SWAP1 MSTORE SHA3 SLOAD JUMPDEST SWAP3 SWAP2 POP POP JUMP STOP LOG1 PUSH6 0x627A7A723058 SHA3 DUP10 SWAP10 0xc5 ORIGIN SWAP16 MSTORE8 MOD 0x4a 0xac PC 0xd4 0xb5 MSTORE8 0xcb CALLDATACOPY SWAP11 GASLIMIT 0xbf 0xca OR 0xe0 0x24 POP PUSH16 0xF916637CFC36F7B20029000000000000 ",
-                "sourceMap":
-                    "795:447:3:-;;;958:6;932:32;;1150:90;;;;;;;1222:11;;-1:-1:-1;;;;;1208:10:3;1199:20;:8;:20;;;;;;;;;;:34;1150:90;795:447;;;;;;;"
-            },
-            "deployedBytecode": {
-                "linkReferences": {},
-                "object":
-                    "0x606060405236156100965763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde038114610098578063095ea7b31461014657806318160ddd1461018657806323b872dd146101a8578063313ce567146101ee57806370a082311461021457806395d89b411461024f578063a9059cbb146102fd578063dd62ed3e1461033d575bfe5b34156100a057fe5b6100a861037e565b60408051602080825283518183015283519192839290830191850190808383821561010c575b80518252602083111561010c577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016100ce565b505050905090810190601f1680156101385780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561014e57fe5b61017273ffffffffffffffffffffffffffffffffffffffff600435166024356103b5565b604080519115158252519081900360200190f35b341561018e57fe5b61019661042d565b60408051918252519081900360200190f35b34156101b057fe5b61017273ffffffffffffffffffffffffffffffffffffffff60043581169060243516604435610433565b604080519115158252519081900360200190f35b34156101f657fe5b6101fe6105d4565b6040805160ff9092168252519081900360200190f35b341561021c57fe5b61019673ffffffffffffffffffffffffffffffffffffffff600435166105d9565b60408051918252519081900360200190f35b341561025757fe5b6100a8610605565b60408051602080825283518183015283519192839290830191850190808383821561010c575b80518252602083111561010c577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016100ce565b505050905090810190601f1680156101385780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561030557fe5b61017273ffffffffffffffffffffffffffffffffffffffff6004351660243561063c565b604080519115158252519081900360200190f35b341561034557fe5b61019673ffffffffffffffffffffffffffffffffffffffff60043581169060243516610727565b60408051918252519081900360200190f35b60408051808201909152601181527f30782050726f746f636f6c20546f6b656e000000000000000000000000000000602082015281565b73ffffffffffffffffffffffffffffffffffffffff338116600081815260016020908152604080832094871680845294825280832086905580518681529051929493927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060015b92915050565b60035481565b73ffffffffffffffffffffffffffffffffffffffff808416600081815260016020908152604080832033909516835293815283822054928252819052918220548390108015906104835750828110155b80156104b6575073ffffffffffffffffffffffffffffffffffffffff841660009081526020819052604090205483810110155b156105c65773ffffffffffffffffffffffffffffffffffffffff808516600090815260208190526040808220805487019055918716815220805484900390557fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8110156105585773ffffffffffffffffffffffffffffffffffffffff808616600090815260016020908152604080832033909416835292905220805484900390555b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a3600191506105cb565b600091505b5b509392505050565b601281565b73ffffffffffffffffffffffffffffffffffffffff81166000908152602081905260409020545b919050565b60408051808201909152600381527f5a52580000000000000000000000000000000000000000000000000000000000602082015281565b73ffffffffffffffffffffffffffffffffffffffff3316600090815260208190526040812054829010801590610699575073ffffffffffffffffffffffffffffffffffffffff831660009081526020819052604090205482810110155b156107185773ffffffffffffffffffffffffffffffffffffffff33811660008181526020818152604080832080548890039055938716808352918490208054870190558351868152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a3506001610427565b506000610427565b5b92915050565b73ffffffffffffffffffffffffffffffffffffffff8083166000908152600160209081526040808320938516835292905220545b929150505600a165627a7a723058208999c5329f53064aac58d4b553cb379a45bfca17e024506ff916637cfc36f7b20029",
-                "opcodes":
-                    "PUSH1 0x60 PUSH1 0x40 MSTORE CALLDATASIZE ISZERO PUSH2 0x96 JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x6FDDE03 DUP2 EQ PUSH2 0x98 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x146 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x186 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x1A8 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x1EE JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x214 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x24F JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x2FD JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x33D JUMPI JUMPDEST INVALID JUMPDEST CALLVALUE ISZERO PUSH2 0xA0 JUMPI INVALID JUMPDEST PUSH2 0xA8 PUSH2 0x37E JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 ADD SWAP1 DUP1 DUP4 DUP4 DUP3 ISZERO PUSH2 0x10C JUMPI JUMPDEST DUP1 MLOAD DUP3 MSTORE PUSH1 0x20 DUP4 GT ISZERO PUSH2 0x10C JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0xCE JUMP JUMPDEST POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x138 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE ISZERO PUSH2 0x14E JUMPI INVALID JUMPDEST PUSH2 0x172 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x3B5 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE ISZERO PUSH2 0x18E JUMPI INVALID JUMPDEST PUSH2 0x196 PUSH2 0x42D JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE ISZERO PUSH2 0x1B0 JUMPI INVALID JUMPDEST PUSH2 0x172 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x433 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE ISZERO PUSH2 0x1F6 JUMPI INVALID JUMPDEST PUSH2 0x1FE PUSH2 0x5D4 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE ISZERO PUSH2 0x21C JUMPI INVALID JUMPDEST PUSH2 0x196 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x4 CALLDATALOAD AND PUSH2 0x5D9 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE ISZERO PUSH2 0x257 JUMPI INVALID JUMPDEST PUSH2 0xA8 PUSH2 0x605 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 ADD SWAP1 DUP1 DUP4 DUP4 DUP3 ISZERO PUSH2 0x10C JUMPI JUMPDEST DUP1 MLOAD DUP3 MSTORE PUSH1 0x20 DUP4 GT ISZERO PUSH2 0x10C JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0xCE JUMP JUMPDEST POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x138 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE ISZERO PUSH2 0x305 JUMPI INVALID JUMPDEST PUSH2 0x172 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x63C JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE ISZERO PUSH2 0x345 JUMPI INVALID JUMPDEST PUSH2 0x196 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH2 0x727 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x11 DUP2 MSTORE PUSH32 0x30782050726F746F636F6C20546F6B656E000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE DUP2 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF CALLER DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 SHA3 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE DUP1 DUP4 SHA3 DUP7 SWAP1 SSTORE DUP1 MLOAD DUP7 DUP2 MSTORE SWAP1 MLOAD SWAP3 SWAP5 SWAP4 SWAP3 PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP3 SWAP2 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP PUSH1 0x1 JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP5 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 SHA3 CALLER SWAP1 SWAP6 AND DUP4 MSTORE SWAP4 DUP2 MSTORE DUP4 DUP3 SHA3 SLOAD SWAP3 DUP3 MSTORE DUP2 SWAP1 MSTORE SWAP2 DUP3 SHA3 SLOAD DUP4 SWAP1 LT DUP1 ISZERO SWAP1 PUSH2 0x483 JUMPI POP DUP3 DUP2 LT ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x4B6 JUMPI POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 SHA3 SLOAD DUP4 DUP2 ADD LT ISZERO JUMPDEST ISZERO PUSH2 0x5C6 JUMPI PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP1 DUP3 SHA3 DUP1 SLOAD DUP8 ADD SWAP1 SSTORE SWAP2 DUP8 AND DUP2 MSTORE SHA3 DUP1 SLOAD DUP5 SWAP1 SUB SWAP1 SSTORE PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 LT ISZERO PUSH2 0x558 JUMPI PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 SHA3 CALLER SWAP1 SWAP5 AND DUP4 MSTORE SWAP3 SWAP1 MSTORE SHA3 DUP1 SLOAD DUP5 SWAP1 SUB SWAP1 SSTORE JUMPDEST DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP6 PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH1 0x1 SWAP2 POP PUSH2 0x5CB JUMP JUMPDEST PUSH1 0x0 SWAP2 POP JUMPDEST JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x12 DUP2 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 SHA3 SLOAD JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x3 DUP2 MSTORE PUSH32 0x5A52580000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE DUP2 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF CALLER AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP2 SHA3 SLOAD DUP3 SWAP1 LT DUP1 ISZERO SWAP1 PUSH2 0x699 JUMPI POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 SHA3 SLOAD DUP3 DUP2 ADD LT ISZERO JUMPDEST ISZERO PUSH2 0x718 JUMPI PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF CALLER DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 SHA3 DUP1 SLOAD DUP9 SWAP1 SUB SWAP1 SSTORE SWAP4 DUP8 AND DUP1 DUP4 MSTORE SWAP2 DUP5 SWAP1 SHA3 DUP1 SLOAD DUP8 ADD SWAP1 SSTORE DUP4 MLOAD DUP7 DUP2 MSTORE SWAP4 MLOAD SWAP2 SWAP4 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP3 SWAP1 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP PUSH1 0x1 PUSH2 0x427 JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0x427 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 SHA3 SWAP4 DUP6 AND DUP4 MSTORE SWAP3 SWAP1 MSTORE SHA3 SLOAD JUMPDEST SWAP3 SWAP2 POP POP JUMP STOP LOG1 PUSH6 0x627A7A723058 SHA3 DUP10 SWAP10 0xc5 ORIGIN SWAP16 MSTORE8 MOD 0x4a 0xac PC 0xd4 0xb5 MSTORE8 0xcb CALLDATACOPY SWAP11 GASLIMIT 0xbf 0xca OR 0xe0 0x24 POP PUSH16 0xF916637CFC36F7B20029000000000000 ",
-                "sourceMap":
-                    "795:447:3:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1009:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18:2:-1;;13:3;7:5;32;59:3;53:5;48:3;41:6;93:2;88:3;85:2;78:6;73:3;67:5;152:3;;;;;117:2;108:3;;;;130;172:5;167:4;181:3;3:186;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1087:187:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;932:32:3;;;;;;;;;;;;;;;;;;;;;;;;;;1066:609:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;891:35:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;982:99:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1064:37:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18:2:-1;;13:3;7:5;32;59:3;53:5;48:3;41:6;93:2;88:3;85:2;78:6;73:3;67:5;152:3;;;;;117:2;108:3;;;;130;172:5;167:4;181:3;3:186;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;125:410:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1280:126;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1009:49:3;;;;;;;;;;;;;;;;;;;:::o;1087:187:0:-;1160:19;1168:10;1160:19;;1144:4;1160:19;;;:7;:19;;;;;;;;:29;;;;;;;;;;;;:38;;;1208;;;;;;;1144:4;;1160:29;:19;1208:38;;;;;;;;;;;-1:-1:-1;1263:4:0;1087:187;;;;;:::o;932:32:3:-;;;;:::o;1066:609:2:-;1198:14;;;;1161:4;1198:14;;;:7;:14;;;;;;;;1213:10;1198:26;;;;;;;;;;;;1238:15;;;;;;;;;;:25;;;;;;:60;;;1292:6;1279:9;:19;;1238:60;:115;;;;-1:-1:-1;1340:13:2;;;:8;:13;;;;;;;;;;;1314:22;;;:39;;1238:115;1234:435;;;1378:13;;;;:8;:13;;;;;;;;;;;:23;;;;;;1415:15;;;;;;:25;;;;;;;768:10;1458:20;;1454:95;;;1498:14;;;;;;;;:7;:14;;;;;;;;1513:10;1498:26;;;;;;;;;:36;;;;;;;1454:95;1578:3;1562:28;;1571:5;1562:28;;;1583:6;1562:28;;;;;;;;;;;;;;;;;;1611:4;1604:11;;;;1234:435;1653:5;1646:12;;1234:435;1066:609;;;;;;;:::o;891:35:3:-;924:2;891:35;:::o;982:99:0:-;1058:16;;;1035:4;1058:16;;;;;;;;;;;982:99;;;;:::o;1064:37:3:-;;;;;;;;;;;;;;;;;;;:::o;125:410:0:-;267:20;276:10;267:20;178:4;267:20;;;;;;;;;;;:30;;;;;;:73;;-1:-1:-1;327:13:0;;;:8;:13;;;;;;;;;;;301:22;;;:39;;267:73;263:266;;;356:20;365:10;356:20;;:8;:20;;;;;;;;;;;:30;;;;;;;400:13;;;;;;;;;;:23;;;;;;437:33;;;;;;;400:13;;437:33;;;;;;;;;;;-1:-1:-1;491:4:0;484:11;;263:266;-1:-1:-1;521:5:0;514:12;;263:266;125:410;;;;;:::o;1280:126::-;1374:15;;;;1351:4;1374:15;;;:7;:15;;;;;;;;:25;;;;;;;;;;1280:126;;;;;:::o"
-            },
-            "gasEstimates": {
-                "creation": {
-                    "codeDepositCost": "386600",
-                    "executionCost": "40780",
-                    "totalCost": "427380"
-                },
-                "external": {
-                    "allowance(address,address)": "737",
-                    "approve(address,uint256)": "22218",
-                    "balanceOf(address)": "579",
-                    "decimals()": "270",
-                    "name()": "530",
-                    "symbol()": "662",
-                    "totalSupply()": "417",
-                    "transfer(address,uint256)": "43393",
-                    "transferFrom(address,address,uint256)": "64116"
-                }
-            },
-            "legacyAssembly": {
-                ".code": [
-                    {
-                        "begin": 795,
-                        "end": 1242,
-                        "name": "PUSH",
-                        "value": "60"
-                    },
-                    {
-                        "begin": 795,
-                        "end": 1242,
-                        "name": "PUSH",
-                        "value": "40"
-                    },
-                    {
-                        "begin": 795,
-                        "end": 1242,
-                        "name": "MSTORE"
-                    },
-                    {
-                        "begin": 958,
-                        "end": 964,
-                        "name": "PUSH",
-                        "value": "33B2E3C9FD0803CE8000000"
-                    },
-                    {
-                        "begin": 932,
-                        "end": 964,
-                        "name": "PUSH",
-                        "value": "3"
-                    },
-                    {
-                        "begin": 932,
-                        "end": 964,
-                        "name": "SSTORE"
-                    },
-                    {
-                        "begin": 1150,
-                        "end": 1240,
-                        "name": "CALLVALUE"
-                    },
-                    {
-                        "begin": 1150,
-                        "end": 1240,
-                        "name": "ISZERO"
-                    },
-                    {
-                        "begin": 1150,
-                        "end": 1240,
-                        "name": "PUSH [tag]",
-                        "value": "1"
-                    },
-                    {
-                        "begin": 1150,
-                        "end": 1240,
-                        "name": "JUMPI"
-                    },
-                    {
-                        "begin": 1150,
-                        "end": 1240,
-                        "name": "INVALID"
-                    },
-                    {
-                        "begin": 1150,
-                        "end": 1240,
-                        "name": "tag",
-                        "value": "1"
-                    },
-                    {
-                        "begin": 1150,
-                        "end": 1240,
-                        "name": "JUMPDEST"
-                    },
-                    {
-                        "begin": 1150,
-                        "end": 1240,
-                        "name": "tag",
-                        "value": "2"
-                    },
-                    {
-                        "begin": 1150,
-                        "end": 1240,
-                        "name": "JUMPDEST"
-                    },
-                    {
-                        "begin": 1222,
-                        "end": 1233,
-                        "name": "PUSH",
-                        "value": "3"
-                    },
-                    {
-                        "begin": 1222,
-                        "end": 1233,
-                        "name": "SLOAD"
-                    },
-                    {
-                        "begin": -1,
-                        "end": -1,
-                        "name": "PUSH",
-                        "value": "1"
-                    },
-                    {
-                        "begin": -1,
-                        "end": -1,
-                        "name": "PUSH",
-                        "value": "A0"
-                    },
-                    {
-                        "begin": -1,
-                        "end": -1,
-                        "name": "PUSH",
-                        "value": "2"
-                    },
-                    {
-                        "begin": -1,
-                        "end": -1,
-                        "name": "EXP"
-                    },
-                    {
-                        "begin": -1,
-                        "end": -1,
-                        "name": "SUB"
-                    },
-                    {
-                        "begin": 1208,
-                        "end": 1218,
-                        "name": "CALLER"
-                    },
-                    {
-                        "begin": 1199,
-                        "end": 1219,
-                        "name": "AND"
-                    },
-                    {
-                        "begin": 1199,
-                        "end": 1207,
-                        "name": "PUSH",
-                        "value": "0"
-                    },
-                    {
-                        "begin": 1199,
-                        "end": 1219,
-                        "name": "SWAP1"
-                    },
-                    {
-                        "begin": 1199,
-                        "end": 1219,
-                        "name": "DUP2"
-                    },
-                    {
-                        "begin": 1199,
-                        "end": 1219,
-                        "name": "MSTORE"
-                    },
-                    {
-                        "begin": 1199,
-                        "end": 1219,
-                        "name": "PUSH",
-                        "value": "20"
-                    },
-                    {
-                        "begin": 1199,
-                        "end": 1219,
-                        "name": "DUP2"
-                    },
-                    {
-                        "begin": 1199,
-                        "end": 1219,
-                        "name": "SWAP1"
-                    },
-                    {
-                        "begin": 1199,
-                        "end": 1219,
-                        "name": "MSTORE"
-                    },
-                    {
-                        "begin": 1199,
-                        "end": 1219,
-                        "name": "PUSH",
-                        "value": "40"
-                    },
-                    {
-                        "begin": 1199,
-                        "end": 1219,
-                        "name": "SWAP1"
-                    },
-                    {
-                        "begin": 1199,
-                        "end": 1219,
-                        "name": "SHA3"
-                    },
-                    {
-                        "begin": 1199,
-                        "end": 1233,
-                        "name": "SSTORE"
-                    },
-                    {
-                        "begin": 1150,
-                        "end": 1240,
-                        "name": "tag",
-                        "value": "3"
-                    },
-                    {
-                        "begin": 1150,
-                        "end": 1240,
-                        "name": "JUMPDEST"
-                    },
-                    {
-                        "begin": 795,
-                        "end": 1242,
-                        "name": "tag",
-                        "value": "4"
-                    },
-                    {
-                        "begin": 795,
-                        "end": 1242,
-                        "name": "JUMPDEST"
-                    },
-                    {
-                        "begin": 795,
-                        "end": 1242,
-                        "name": "PUSH #[$]",
-                        "value": "0000000000000000000000000000000000000000000000000000000000000000"
-                    },
-                    {
-                        "begin": 795,
-                        "end": 1242,
-                        "name": "DUP1"
-                    },
-                    {
-                        "begin": 795,
-                        "end": 1242,
-                        "name": "PUSH [$]",
-                        "value": "0000000000000000000000000000000000000000000000000000000000000000"
-                    },
-                    {
-                        "begin": 795,
-                        "end": 1242,
-                        "name": "PUSH",
-                        "value": "0"
-                    },
-                    {
-                        "begin": 795,
-                        "end": 1242,
-                        "name": "CODECOPY"
-                    },
-                    {
-                        "begin": 795,
-                        "end": 1242,
-                        "name": "PUSH",
-                        "value": "0"
-                    },
-                    {
-                        "begin": 795,
-                        "end": 1242,
-                        "name": "RETURN"
-                    }
-                ],
-                ".data": {
-                    "0": {
-                        ".code": [
-                            {
-                                "begin": 795,
-                                "end": 1242,
-                                "name": "PUSH",
-                                "value": "60"
-                            },
-                            {
-                                "begin": 795,
-                                "end": 1242,
-                                "name": "PUSH",
-                                "value": "40"
-                            },
-                            {
-                                "begin": 795,
-                                "end": 1242,
-                                "name": "MSTORE"
-                            },
-                            {
-                                "begin": 795,
-                                "end": 1242,
-                                "name": "CALLDATASIZE"
-                            },
-                            {
-                                "begin": 795,
-                                "end": 1242,
-                                "name": "ISZERO"
-                            },
-                            {
-                                "begin": 795,
-                                "end": 1242,
-                                "name": "PUSH [tag]",
-                                "value": "1"
-                            },
-                            {
-                                "begin": 795,
-                                "end": 1242,
-                                "name": "JUMPI"
-                            },
-                            {
-                                "begin": 795,
-                                "end": 1242,
-                                "name": "PUSH",
-                                "value": "FFFFFFFF"
-                            },
-                            {
-                                "begin": 795,
-                                "end": 1242,
-                                "name": "PUSH",
-                                "value": "100000000000000000000000000000000000000000000000000000000"
-                            },
-                            {
-                                "begin": 795,
-                                "end": 1242,
-                                "name": "PUSH",
-                                "value": "0"
-                            },
-                            {
-                                "begin": 795,
-                                "end": 1242,
-                                "name": "CALLDATALOAD"
-                            },
-                            {
-                                "begin": 795,
-                                "end": 1242,
-                                "name": "DIV"
-                            },
-                            {
-                                "begin": 795,
-                                "end": 1242,
-                                "name": "AND"
-                            },
-                            {
-                                "begin": 795,
-                                "end": 1242,
-                                "name": "PUSH",
-                                "value": "6FDDE03"
-                            },
-                            {
-                                "begin": 795,
-                                "end": 1242,
-                                "name": "DUP2"
-                            },
-                            {
-                                "begin": 795,
-                                "end": 1242,
-                                "name": "EQ"
-                            },
-                            {
-                                "begin": 795,
-                                "end": 1242,
-                                "name": "PUSH [tag]",
-                                "value": "2"
-                            },
-                            {
-                                "begin": 795,
-                                "end": 1242,
-                                "name": "JUMPI"
-                            },
-                            {
-                                "begin": 795,
-                                "end": 1242,
-                                "name": "DUP1"
-                            },
-                            {
-                                "begin": 795,
-                                "end": 1242,
-                                "name": "PUSH",
-                                "value": "95EA7B3"
-                            },
-                            {
-                                "begin": 795,
-                                "end": 1242,
-                                "name": "EQ"
-                            },
-                            {
-                                "begin": 795,
-                                "end": 1242,
-                                "name": "PUSH [tag]",
-                                "value": "3"
-                            },
-                            {
-                                "begin": 795,
-                                "end": 1242,
-                                "name": "JUMPI"
-                            },
-                            {
-                                "begin": 795,
-                                "end": 1242,
-                                "name": "DUP1"
-                            },
-                            {
-                                "begin": 795,
-                                "end": 1242,
-                                "name": "PUSH",
-                                "value": "18160DDD"
-                            },
-                            {
-                                "begin": 795,
-                                "end": 1242,
-                                "name": "EQ"
-                            },
-                            {
-                                "begin": 795,
-                                "end": 1242,
-                                "name": "PUSH [tag]",
-                                "value": "4"
-                            },
-                            {
-                                "begin": 795,
-                                "end": 1242,
-                                "name": "JUMPI"
-                            },
-                            {
-                                "begin": 795,
-                                "end": 1242,
-                                "name": "DUP1"
-                            },
-                            {
-                                "begin": 795,
-                                "end": 1242,
-                                "name": "PUSH",
-                                "value": "23B872DD"
-                            },
-                            {
-                                "begin": 795,
-                                "end": 1242,
-                                "name": "EQ"
-                            },
-                            {
-                                "begin": 795,
-                                "end": 1242,
-                                "name": "PUSH [tag]",
-                                "value": "5"
-                            },
-                            {
-                                "begin": 795,
-                                "end": 1242,
-                                "name": "JUMPI"
-                            },
-                            {
-                                "begin": 795,
-                                "end": 1242,
-                                "name": "DUP1"
-                            },
-                            {
-                                "begin": 795,
-                                "end": 1242,
-                                "name": "PUSH",
-                                "value": "313CE567"
-                            },
-                            {
-                                "begin": 795,
-                                "end": 1242,
-                                "name": "EQ"
-                            },
-                            {
-                                "begin": 795,
-                                "end": 1242,
-                                "name": "PUSH [tag]",
-                                "value": "6"
-                            },
-                            {
-                                "begin": 795,
-                                "end": 1242,
-                                "name": "JUMPI"
-                            },
-                            {
-                                "begin": 795,
-                                "end": 1242,
-                                "name": "DUP1"
-                            },
-                            {
-                                "begin": 795,
-                                "end": 1242,
-                                "name": "PUSH",
-                                "value": "70A08231"
-                            },
-                            {
-                                "begin": 795,
-                                "end": 1242,
-                                "name": "EQ"
-                            },
-                            {
-                                "begin": 795,
-                                "end": 1242,
-                                "name": "PUSH [tag]",
-                                "value": "7"
-                            },
-                            {
-                                "begin": 795,
-                                "end": 1242,
-                                "name": "JUMPI"
-                            },
-                            {
-                                "begin": 795,
-                                "end": 1242,
-                                "name": "DUP1"
-                            },
-                            {
-                                "begin": 795,
-                                "end": 1242,
-                                "name": "PUSH",
-                                "value": "95D89B41"
-                            },
-                            {
-                                "begin": 795,
-                                "end": 1242,
-                                "name": "EQ"
-                            },
-                            {
-                                "begin": 795,
-                                "end": 1242,
-                                "name": "PUSH [tag]",
-                                "value": "8"
-                            },
-                            {
-                                "begin": 795,
-                                "end": 1242,
-                                "name": "JUMPI"
-                            },
-                            {
-                                "begin": 795,
-                                "end": 1242,
-                                "name": "DUP1"
-                            },
-                            {
-                                "begin": 795,
-                                "end": 1242,
-                                "name": "PUSH",
-                                "value": "A9059CBB"
-                            },
-                            {
-                                "begin": 795,
-                                "end": 1242,
-                                "name": "EQ"
-                            },
-                            {
-                                "begin": 795,
-                                "end": 1242,
-                                "name": "PUSH [tag]",
-                                "value": "9"
-                            },
-                            {
-                                "begin": 795,
-                                "end": 1242,
-                                "name": "JUMPI"
-                            },
-                            {
-                                "begin": 795,
-                                "end": 1242,
-                                "name": "DUP1"
-                            },
-                            {
-                                "begin": 795,
-                                "end": 1242,
-                                "name": "PUSH",
-                                "value": "DD62ED3E"
-                            },
-                            {
-                                "begin": 795,
-                                "end": 1242,
-                                "name": "EQ"
-                            },
-                            {
-                                "begin": 795,
-                                "end": 1242,
-                                "name": "PUSH [tag]",
-                                "value": "10"
-                            },
-                            {
-                                "begin": 795,
-                                "end": 1242,
-                                "name": "JUMPI"
-                            },
-                            {
-                                "begin": 795,
-                                "end": 1242,
-                                "name": "tag",
-                                "value": "1"
-                            },
-                            {
-                                "begin": 795,
-                                "end": 1242,
-                                "name": "JUMPDEST"
-                            },
-                            {
-                                "begin": 795,
-                                "end": 1242,
-                                "name": "INVALID"
-                            },
-                            {
-                                "begin": 1009,
-                                "end": 1058,
-                                "name": "tag",
-                                "value": "2"
-                            },
-                            {
-                                "begin": 1009,
-                                "end": 1058,
-                                "name": "JUMPDEST"
-                            },
-                            {
-                                "begin": 1009,
-                                "end": 1058,
-                                "name": "CALLVALUE"
-                            },
-                            {
-                                "begin": 1009,
-                                "end": 1058,
-                                "name": "ISZERO"
-                            },
-                            {
-                                "begin": 1009,
-                                "end": 1058,
-                                "name": "PUSH [tag]",
-                                "value": "11"
-                            },
-                            {
-                                "begin": 1009,
-                                "end": 1058,
-                                "name": "JUMPI"
-                            },
-                            {
-                                "begin": 1009,
-                                "end": 1058,
-                                "name": "INVALID"
-                            },
-                            {
-                                "begin": 1009,
-                                "end": 1058,
-                                "name": "tag",
-                                "value": "11"
-                            },
-                            {
-                                "begin": 1009,
-                                "end": 1058,
-                                "name": "JUMPDEST"
-                            },
-                            {
-                                "begin": 1009,
-                                "end": 1058,
-                                "name": "PUSH [tag]",
-                                "value": "12"
-                            },
-                            {
-                                "begin": 1009,
-                                "end": 1058,
-                                "name": "PUSH [tag]",
-                                "value": "13"
-                            },
-                            {
-                                "begin": 1009,
-                                "end": 1058,
-                                "name": "JUMP"
-                            },
-                            {
-                                "begin": 1009,
-                                "end": 1058,
-                                "name": "tag",
-                                "value": "12"
-                            },
-                            {
-                                "begin": 1009,
-                                "end": 1058,
-                                "name": "JUMPDEST"
-                            },
-                            {
-                                "begin": 1009,
-                                "end": 1058,
-                                "name": "PUSH",
-                                "value": "40"
-                            },
-                            {
-                                "begin": 1009,
-                                "end": 1058,
-                                "name": "DUP1"
-                            },
-                            {
-                                "begin": 1009,
-                                "end": 1058,
-                                "name": "MLOAD"
-                            },
-                            {
-                                "begin": 1009,
-                                "end": 1058,
-                                "name": "PUSH",
-                                "value": "20"
-                            },
-                            {
-                                "begin": 1009,
-                                "end": 1058,
-                                "name": "DUP1"
-                            },
-                            {
-                                "begin": 1009,
-                                "end": 1058,
-                                "name": "DUP3"
-                            },
-                            {
-                                "begin": 1009,
-                                "end": 1058,
-                                "name": "MSTORE"
-                            },
-                            {
-                                "begin": 1009,
-                                "end": 1058,
-                                "name": "DUP4"
-                            },
-                            {
-                                "begin": 1009,
-                                "end": 1058,
-                                "name": "MLOAD"
-                            },
-                            {
-                                "begin": 1009,
-                                "end": 1058,
-                                "name": "DUP2"
-                            },
-                            {
-                                "begin": 1009,
-                                "end": 1058,
-                                "name": "DUP4"
-                            },
-                            {
-                                "begin": 1009,
-                                "end": 1058,
-                                "name": "ADD"
-                            },
-                            {
-                                "begin": 1009,
-                                "end": 1058,
-                                "name": "MSTORE"
-                            },
-                            {
-                                "begin": 1009,
-                                "end": 1058,
-                                "name": "DUP4"
-                            },
-                            {
-                                "begin": 1009,
-                                "end": 1058,
-                                "name": "MLOAD"
-                            },
-                            {
-                                "begin": 1009,
-                                "end": 1058,
-                                "name": "SWAP2"
-                            },
-                            {
-                                "begin": 1009,
-                                "end": 1058,
-                                "name": "SWAP3"
-                            },
-                            {
-                                "begin": 1009,
-                                "end": 1058,
-                                "name": "DUP4"
-                            },
-                            {
-                                "begin": 1009,
-                                "end": 1058,
-                                "name": "SWAP3"
-                            },
-                            {
-                                "begin": 1009,
-                                "end": 1058,
-                                "name": "SWAP1"
-                            },
-                            {
-                                "begin": 1009,
-                                "end": 1058,
-                                "name": "DUP4"
-                            },
-                            {
-                                "begin": 1009,
-                                "end": 1058,
-                                "name": "ADD"
-                            },
-                            {
-                                "begin": 1009,
-                                "end": 1058,
-                                "name": "SWAP2"
-                            },
-                            {
-                                "begin": 1009,
-                                "end": 1058,
-                                "name": "DUP6"
-                            },
-                            {
-                                "begin": 1009,
-                                "end": 1058,
-                                "name": "ADD"
-                            },
-                            {
-                                "begin": 1009,
-                                "end": 1058,
-                                "name": "SWAP1"
-                            },
-                            {
-                                "begin": 1009,
-                                "end": 1058,
-                                "name": "DUP1"
-                            },
-                            {
-                                "begin": 1009,
-                                "end": 1058,
-                                "name": "DUP4"
-                            },
-                            {
-                                "begin": 1009,
-                                "end": 1058,
-                                "name": "DUP4"
-                            },
-                            {
-                                "begin": 18,
-                                "end": 20,
-                                "name": "DUP3"
-                            },
-                            {
-                                "begin": 18,
-                                "end": 20,
-                                "name": "ISZERO"
-                            },
-                            {
-                                "begin": 13,
-                                "end": 16,
-                                "name": "PUSH [tag]",
-                                "value": "14"
-                            },
-                            {
-                                "begin": 7,
-                                "end": 12,
-                                "name": "JUMPI"
-                            },
-                            {
-                                "begin": 32,
-                                "end": 37,
-                                "name": "tag",
-                                "value": "15"
-                            },
-                            {
-                                "begin": 32,
-                                "end": 37,
-                                "name": "JUMPDEST"
-                            },
-                            {
-                                "begin": 59,
-                                "end": 62,
-                                "name": "DUP1"
-                            },
-                            {
-                                "begin": 53,
-                                "end": 58,
-                                "name": "MLOAD"
-                            },
-                            {
-                                "begin": 48,
-                                "end": 51,
-                                "name": "DUP3"
-                            },
-                            {
-                                "begin": 41,
-                                "end": 47,
-                                "name": "MSTORE"
-                            },
-                            {
-                                "begin": 93,
-                                "end": 95,
-                                "name": "PUSH",
-                                "value": "20"
-                            },
-                            {
-                                "begin": 88,
-                                "end": 91,
-                                "name": "DUP4"
-                            },
-                            {
-                                "begin": 85,
-                                "end": 87,
-                                "name": "GT"
-                            },
-                            {
-                                "begin": 78,
-                                "end": 84,
-                                "name": "ISZERO"
-                            },
-                            {
-                                "begin": 73,
-                                "end": 76,
-                                "name": "PUSH [tag]",
-                                "value": "14"
-                            },
-                            {
-                                "begin": 67,
-                                "end": 72,
-                                "name": "JUMPI"
-                            },
-                            {
-                                "begin": 152,
-                                "end": 155,
-                                "name": "PUSH",
-                                "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0"
-                            },
-                            {
-                                "begin": 152,
-                                "end": 155,
-                                "name": "SWAP1"
-                            },
-                            {
-                                "begin": 152,
-                                "end": 155,
-                                "name": "SWAP3"
-                            },
-                            {
-                                "begin": 152,
-                                "end": 155,
-                                "name": "ADD"
-                            },
-                            {
-                                "begin": 152,
-                                "end": 155,
-                                "name": "SWAP2"
-                            },
-                            {
-                                "begin": 117,
-                                "end": 119,
-                                "name": "PUSH",
-                                "value": "20"
-                            },
-                            {
-                                "begin": 108,
-                                "end": 111,
-                                "name": "SWAP2"
-                            },
-                            {
-                                "begin": 108,
-                                "end": 111,
-                                "name": "DUP3"
-                            },
-                            {
-                                "begin": 108,
-                                "end": 111,
-                                "name": "ADD"
-                            },
-                            {
-                                "begin": 108,
-                                "end": 111,
-                                "name": "SWAP2"
-                            },
-                            {
-                                "begin": 130,
-                                "end": 133,
-                                "name": "ADD"
-                            },
-                            {
-                                "begin": 172,
-                                "end": 177,
-                                "name": "PUSH [tag]",
-                                "value": "15"
-                            },
-                            {
-                                "begin": 167,
-                                "end": 171,
-                                "name": "JUMP"
-                            },
-                            {
-                                "begin": 181,
-                                "end": 184,
-                                "name": "tag",
-                                "value": "14"
-                            },
-                            {
-                                "begin": 181,
-                                "end": 184,
-                                "name": "JUMPDEST"
-                            },
-                            {
-                                "begin": 3,
-                                "end": 189,
-                                "name": "POP"
-                            },
-                            {
-                                "begin": 3,
-                                "end": 189,
-                                "name": "POP"
-                            },
-                            {
-                                "begin": 3,
-                                "end": 189,
-                                "name": "POP"
-                            },
-                            {
-                                "begin": 3,
-                                "end": 189,
-                                "name": "SWAP1"
-                            },
-                            {
-                                "begin": 3,
-                                "end": 189,
-                                "name": "POP"
-                            },
-                            {
-                                "begin": 3,
-                                "end": 189,
-                                "name": "SWAP1"
-                            },
-                            {
-                                "begin": 3,
-                                "end": 189,
-                                "name": "DUP2"
-                            },
-                            {
-                                "begin": 3,
-                                "end": 189,
-                                "name": "ADD"
-                            },
-                            {
-                                "begin": 3,
-                                "end": 189,
-                                "name": "SWAP1"
-                            },
-                            {
-                                "begin": 3,
-                                "end": 189,
-                                "name": "PUSH",
-                                "value": "1F"
-                            },
-                            {
-                                "begin": 3,
-                                "end": 189,
-                                "name": "AND"
-                            },
-                            {
-                                "begin": 3,
-                                "end": 189,
-                                "name": "DUP1"
-                            },
-                            {
-                                "begin": 3,
-                                "end": 189,
-                                "name": "ISZERO"
-                            },
-                            {
-                                "begin": 3,
-                                "end": 189,
-                                "name": "PUSH [tag]",
-                                "value": "16"
-                            },
-                            {
-                                "begin": 3,
-                                "end": 189,
-                                "name": "JUMPI"
-                            },
-                            {
-                                "begin": 3,
-                                "end": 189,
-                                "name": "DUP1"
-                            },
-                            {
-                                "begin": 3,
-                                "end": 189,
-                                "name": "DUP3"
-                            },
-                            {
-                                "begin": 3,
-                                "end": 189,
-                                "name": "SUB"
-                            },
-                            {
-                                "begin": 3,
-                                "end": 189,
-                                "name": "DUP1"
-                            },
-                            {
-                                "begin": 3,
-                                "end": 189,
-                                "name": "MLOAD"
-                            },
-                            {
-                                "begin": 3,
-                                "end": 189,
-                                "name": "PUSH",
-                                "value": "1"
-                            },
-                            {
-                                "begin": 3,
-                                "end": 189,
-                                "name": "DUP4"
-                            },
-                            {
-                                "begin": 3,
-                                "end": 189,
-                                "name": "PUSH",
-                                "value": "20"
-                            },
-                            {
-                                "begin": 3,
-                                "end": 189,
-                                "name": "SUB"
-                            },
-                            {
-                                "begin": 3,
-                                "end": 189,
-                                "name": "PUSH",
-                                "value": "100"
-                            },
-                            {
-                                "begin": 3,
-                                "end": 189,
-                                "name": "EXP"
-                            },
-                            {
-                                "begin": 3,
-                                "end": 189,
-                                "name": "SUB"
-                            },
-                            {
-                                "begin": 3,
-                                "end": 189,
-                                "name": "NOT"
-                            },
-                            {
-                                "begin": 3,
-                                "end": 189,
-                                "name": "AND"
-                            },
-                            {
-                                "begin": 3,
-                                "end": 189,
-                                "name": "DUP2"
-                            },
-                            {
-                                "begin": 3,
-                                "end": 189,
-                                "name": "MSTORE"
-                            },
-                            {
-                                "begin": 3,
-                                "end": 189,
-                                "name": "PUSH",
-                                "value": "20"
-                            },
-                            {
-                                "begin": 3,
-                                "end": 189,
-                                "name": "ADD"
-                            },
-                            {
-                                "begin": 3,
-                                "end": 189,
-                                "name": "SWAP2"
-                            },
-                            {
-                                "begin": 3,
-                                "end": 189,
-                                "name": "POP"
-                            },
-                            {
-                                "begin": 3,
-                                "end": 189,
-                                "name": "tag",
-                                "value": "16"
-                            },
-                            {
-                                "begin": 3,
-                                "end": 189,
-                                "name": "JUMPDEST"
-                            },
-                            {
-                                "begin": 3,
-                                "end": 189,
-                                "name": "POP"
-                            },
-                            {
-                                "begin": 3,
-                                "end": 189,
-                                "name": "SWAP3"
-                            },
-                            {
-                                "begin": 3,
-                                "end": 189,
-                                "name": "POP"
-                            },
-                            {
-                                "begin": 3,
-                                "end": 189,
-                                "name": "POP"
-                            },
-                            {
-                                "begin": 3,
-                                "end": 189,
-                                "name": "POP"
-                            },
-                            {
-                                "begin": 3,
-                                "end": 189,
-                                "name": "PUSH",
-                                "value": "40"
-                            },
-                            {
-                                "begin": 3,
-                                "end": 189,
-                                "name": "MLOAD"
-                            },
-                            {
-                                "begin": 3,
-                                "end": 189,
-                                "name": "DUP1"
-                            },
-                            {
-                                "begin": 3,
-                                "end": 189,
-                                "name": "SWAP2"
-                            },
-                            {
-                                "begin": 3,
-                                "end": 189,
-                                "name": "SUB"
-                            },
-                            {
-                                "begin": 3,
-                                "end": 189,
-                                "name": "SWAP1"
-                            },
-                            {
-                                "begin": 3,
-                                "end": 189,
-                                "name": "RETURN"
-                            },
-                            {
-                                "begin": 1087,
-                                "end": 1274,
-                                "name": "tag",
-                                "value": "3"
-                            },
-                            {
-                                "begin": 1087,
-                                "end": 1274,
-                                "name": "JUMPDEST"
-                            },
-                            {
-                                "begin": 1087,
-                                "end": 1274,
-                                "name": "CALLVALUE"
-                            },
-                            {
-                                "begin": 1087,
-                                "end": 1274,
-                                "name": "ISZERO"
-                            },
-                            {
-                                "begin": 1087,
-                                "end": 1274,
-                                "name": "PUSH [tag]",
-                                "value": "17"
-                            },
-                            {
-                                "begin": 1087,
-                                "end": 1274,
-                                "name": "JUMPI"
-                            },
-                            {
-                                "begin": 1087,
-                                "end": 1274,
-                                "name": "INVALID"
-                            },
-                            {
-                                "begin": 1087,
-                                "end": 1274,
-                                "name": "tag",
-                                "value": "17"
-                            },
-                            {
-                                "begin": 1087,
-                                "end": 1274,
-                                "name": "JUMPDEST"
-                            },
-                            {
-                                "begin": 1087,
-                                "end": 1274,
-                                "name": "PUSH [tag]",
-                                "value": "18"
-                            },
-                            {
-                                "begin": 1087,
-                                "end": 1274,
-                                "name": "PUSH",
-                                "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
-                            },
-                            {
-                                "begin": 1087,
-                                "end": 1274,
-                                "name": "PUSH",
-                                "value": "4"
-                            },
-                            {
-                                "begin": 1087,
-                                "end": 1274,
-                                "name": "CALLDATALOAD"
-                            },
-                            {
-                                "begin": 1087,
-                                "end": 1274,
-                                "name": "AND"
-                            },
-                            {
-                                "begin": 1087,
-                                "end": 1274,
-                                "name": "PUSH",
-                                "value": "24"
-                            },
-                            {
-                                "begin": 1087,
-                                "end": 1274,
-                                "name": "CALLDATALOAD"
-                            },
-                            {
-                                "begin": 1087,
-                                "end": 1274,
-                                "name": "PUSH [tag]",
-                                "value": "19"
-                            },
-                            {
-                                "begin": 1087,
-                                "end": 1274,
-                                "name": "JUMP"
-                            },
-                            {
-                                "begin": 1087,
-                                "end": 1274,
-                                "name": "tag",
-                                "value": "18"
-                            },
-                            {
-                                "begin": 1087,
-                                "end": 1274,
-                                "name": "JUMPDEST"
-                            },
-                            {
-                                "begin": 1087,
-                                "end": 1274,
-                                "name": "PUSH",
-                                "value": "40"
-                            },
-                            {
-                                "begin": 1087,
-                                "end": 1274,
-                                "name": "DUP1"
-                            },
-                            {
-                                "begin": 1087,
-                                "end": 1274,
-                                "name": "MLOAD"
-                            },
-                            {
-                                "begin": 1087,
-                                "end": 1274,
-                                "name": "SWAP2"
-                            },
-                            {
-                                "begin": 1087,
-                                "end": 1274,
-                                "name": "ISZERO"
-                            },
-                            {
-                                "begin": 1087,
-                                "end": 1274,
-                                "name": "ISZERO"
-                            },
-                            {
-                                "begin": 1087,
-                                "end": 1274,
-                                "name": "DUP3"
-                            },
-                            {
-                                "begin": 1087,
-                                "end": 1274,
-                                "name": "MSTORE"
-                            },
-                            {
-                                "begin": 1087,
-                                "end": 1274,
-                                "name": "MLOAD"
-                            },
-                            {
-                                "begin": 1087,
-                                "end": 1274,
-                                "name": "SWAP1"
-                            },
-                            {
-                                "begin": 1087,
-                                "end": 1274,
-                                "name": "DUP2"
-                            },
-                            {
-                                "begin": 1087,
-                                "end": 1274,
-                                "name": "SWAP1"
-                            },
-                            {
-                                "begin": 1087,
-                                "end": 1274,
-                                "name": "SUB"
-                            },
-                            {
-                                "begin": 1087,
-                                "end": 1274,
-                                "name": "PUSH",
-                                "value": "20"
-                            },
-                            {
-                                "begin": 1087,
-                                "end": 1274,
-                                "name": "ADD"
-                            },
-                            {
-                                "begin": 1087,
-                                "end": 1274,
-                                "name": "SWAP1"
-                            },
-                            {
-                                "begin": 1087,
-                                "end": 1274,
-                                "name": "RETURN"
-                            },
-                            {
-                                "begin": 932,
-                                "end": 964,
-                                "name": "tag",
-                                "value": "4"
-                            },
-                            {
-                                "begin": 932,
-                                "end": 964,
-                                "name": "JUMPDEST"
-                            },
-                            {
-                                "begin": 932,
-                                "end": 964,
-                                "name": "CALLVALUE"
-                            },
-                            {
-                                "begin": 932,
-                                "end": 964,
-                                "name": "ISZERO"
-                            },
-                            {
-                                "begin": 932,
-                                "end": 964,
-                                "name": "PUSH [tag]",
-                                "value": "20"
-                            },
-                            {
-                                "begin": 932,
-                                "end": 964,
-                                "name": "JUMPI"
-                            },
-                            {
-                                "begin": 932,
-                                "end": 964,
-                                "name": "INVALID"
-                            },
-                            {
-                                "begin": 932,
-                                "end": 964,
-                                "name": "tag",
-                                "value": "20"
-                            },
-                            {
-                                "begin": 932,
-                                "end": 964,
-                                "name": "JUMPDEST"
-                            },
-                            {
-                                "begin": 932,
-                                "end": 964,
-                                "name": "PUSH [tag]",
-                                "value": "21"
-                            },
-                            {
-                                "begin": 932,
-                                "end": 964,
-                                "name": "PUSH [tag]",
-                                "value": "22"
-                            },
-                            {
-                                "begin": 932,
-                                "end": 964,
-                                "name": "JUMP"
-                            },
-                            {
-                                "begin": 932,
-                                "end": 964,
-                                "name": "tag",
-                                "value": "21"
-                            },
-                            {
-                                "begin": 932,
-                                "end": 964,
-                                "name": "JUMPDEST"
-                            },
-                            {
-                                "begin": 932,
-                                "end": 964,
-                                "name": "PUSH",
-                                "value": "40"
-                            },
-                            {
-                                "begin": 932,
-                                "end": 964,
-                                "name": "DUP1"
-                            },
-                            {
-                                "begin": 932,
-                                "end": 964,
-                                "name": "MLOAD"
-                            },
-                            {
-                                "begin": 932,
-                                "end": 964,
-                                "name": "SWAP2"
-                            },
-                            {
-                                "begin": 932,
-                                "end": 964,
-                                "name": "DUP3"
-                            },
-                            {
-                                "begin": 932,
-                                "end": 964,
-                                "name": "MSTORE"
-                            },
-                            {
-                                "begin": 932,
-                                "end": 964,
-                                "name": "MLOAD"
-                            },
-                            {
-                                "begin": 932,
-                                "end": 964,
-                                "name": "SWAP1"
-                            },
-                            {
-                                "begin": 932,
-                                "end": 964,
-                                "name": "DUP2"
-                            },
-                            {
-                                "begin": 932,
-                                "end": 964,
-                                "name": "SWAP1"
-                            },
-                            {
-                                "begin": 932,
-                                "end": 964,
-                                "name": "SUB"
-                            },
-                            {
-                                "begin": 932,
-                                "end": 964,
-                                "name": "PUSH",
-                                "value": "20"
-                            },
-                            {
-                                "begin": 932,
-                                "end": 964,
-                                "name": "ADD"
-                            },
-                            {
-                                "begin": 932,
-                                "end": 964,
-                                "name": "SWAP1"
-                            },
-                            {
-                                "begin": 932,
-                                "end": 964,
-                                "name": "RETURN"
-                            },
-                            {
-                                "begin": 1066,
-                                "end": 1675,
-                                "name": "tag",
-                                "value": "5"
-                            },
-                            {
-                                "begin": 1066,
-                                "end": 1675,
-                                "name": "JUMPDEST"
-                            },
-                            {
-                                "begin": 1066,
-                                "end": 1675,
-                                "name": "CALLVALUE"
-                            },
-                            {
-                                "begin": 1066,
-                                "end": 1675,
-                                "name": "ISZERO"
-                            },
-                            {
-                                "begin": 1066,
-                                "end": 1675,
-                                "name": "PUSH [tag]",
-                                "value": "23"
-                            },
-                            {
-                                "begin": 1066,
-                                "end": 1675,
-                                "name": "JUMPI"
-                            },
-                            {
-                                "begin": 1066,
-                                "end": 1675,
-                                "name": "INVALID"
-                            },
-                            {
-                                "begin": 1066,
-                                "end": 1675,
-                                "name": "tag",
-                                "value": "23"
-                            },
-                            {
-                                "begin": 1066,
-                                "end": 1675,
-                                "name": "JUMPDEST"
-                            },
-                            {
-                                "begin": 1066,
-                                "end": 1675,
-                                "name": "PUSH [tag]",
-                                "value": "18"
-                            },
-                            {
-                                "begin": 1066,
-                                "end": 1675,
-                                "name": "PUSH",
-                                "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
-                            },
-                            {
-                                "begin": 1066,
-                                "end": 1675,
-                                "name": "PUSH",
-                                "value": "4"
-                            },
-                            {
-                                "begin": 1066,
-                                "end": 1675,
-                                "name": "CALLDATALOAD"
-                            },
-                            {
-                                "begin": 1066,
-                                "end": 1675,
-                                "name": "DUP2"
-                            },
-                            {
-                                "begin": 1066,
-                                "end": 1675,
-                                "name": "AND"
-                            },
-                            {
-                                "begin": 1066,
-                                "end": 1675,
-                                "name": "SWAP1"
-                            },
-                            {
-                                "begin": 1066,
-                                "end": 1675,
-                                "name": "PUSH",
-                                "value": "24"
-                            },
-                            {
-                                "begin": 1066,
-                                "end": 1675,
-                                "name": "CALLDATALOAD"
-                            },
-                            {
-                                "begin": 1066,
-                                "end": 1675,
-                                "name": "AND"
-                            },
-                            {
-                                "begin": 1066,
-                                "end": 1675,
-                                "name": "PUSH",
-                                "value": "44"
-                            },
-                            {
-                                "begin": 1066,
-                                "end": 1675,
-                                "name": "CALLDATALOAD"
-                            },
-                            {
-                                "begin": 1066,
-                                "end": 1675,
-                                "name": "PUSH [tag]",
-                                "value": "25"
-                            },
-                            {
-                                "begin": 1066,
-                                "end": 1675,
-                                "name": "JUMP"
-                            },
-                            {
-                                "begin": 1066,
-                                "end": 1675,
-                                "name": "tag",
-                                "value": "24"
-                            },
-                            {
-                                "begin": 1066,
-                                "end": 1675,
-                                "name": "JUMPDEST"
-                            },
-                            {
-                                "begin": 1066,
-                                "end": 1675,
-                                "name": "PUSH",
-                                "value": "40"
-                            },
-                            {
-                                "begin": 1066,
-                                "end": 1675,
-                                "name": "DUP1"
-                            },
-                            {
-                                "begin": 1066,
-                                "end": 1675,
-                                "name": "MLOAD"
-                            },
-                            {
-                                "begin": 1066,
-                                "end": 1675,
-                                "name": "SWAP2"
-                            },
-                            {
-                                "begin": 1066,
-                                "end": 1675,
-                                "name": "ISZERO"
-                            },
-                            {
-                                "begin": 1066,
-                                "end": 1675,
-                                "name": "ISZERO"
-                            },
-                            {
-                                "begin": 1066,
-                                "end": 1675,
-                                "name": "DUP3"
-                            },
-                            {
-                                "begin": 1066,
-                                "end": 1675,
-                                "name": "MSTORE"
-                            },
-                            {
-                                "begin": 1066,
-                                "end": 1675,
-                                "name": "MLOAD"
-                            },
-                            {
-                                "begin": 1066,
-                                "end": 1675,
-                                "name": "SWAP1"
-                            },
-                            {
-                                "begin": 1066,
-                                "end": 1675,
-                                "name": "DUP2"
-                            },
-                            {
-                                "begin": 1066,
-                                "end": 1675,
-                                "name": "SWAP1"
-                            },
-                            {
-                                "begin": 1066,
-                                "end": 1675,
-                                "name": "SUB"
-                            },
-                            {
-                                "begin": 1066,
-                                "end": 1675,
-                                "name": "PUSH",
-                                "value": "20"
-                            },
-                            {
-                                "begin": 1066,
-                                "end": 1675,
-                                "name": "ADD"
-                            },
-                            {
-                                "begin": 1066,
-                                "end": 1675,
-                                "name": "SWAP1"
-                            },
-                            {
-                                "begin": 1066,
-                                "end": 1675,
-                                "name": "RETURN"
-                            },
-                            {
-                                "begin": 891,
-                                "end": 926,
-                                "name": "tag",
-                                "value": "6"
-                            },
-                            {
-                                "begin": 891,
-                                "end": 926,
-                                "name": "JUMPDEST"
-                            },
-                            {
-                                "begin": 891,
-                                "end": 926,
-                                "name": "CALLVALUE"
-                            },
-                            {
-                                "begin": 891,
-                                "end": 926,
-                                "name": "ISZERO"
-                            },
-                            {
-                                "begin": 891,
-                                "end": 926,
-                                "name": "PUSH [tag]",
-                                "value": "26"
-                            },
-                            {
-                                "begin": 891,
-                                "end": 926,
-                                "name": "JUMPI"
-                            },
-                            {
-                                "begin": 891,
-                                "end": 926,
-                                "name": "INVALID"
-                            },
-                            {
-                                "begin": 891,
-                                "end": 926,
-                                "name": "tag",
-                                "value": "26"
-                            },
-                            {
-                                "begin": 891,
-                                "end": 926,
-                                "name": "JUMPDEST"
-                            },
-                            {
-                                "begin": 891,
-                                "end": 926,
-                                "name": "PUSH [tag]",
-                                "value": "27"
-                            },
-                            {
-                                "begin": 891,
-                                "end": 926,
-                                "name": "PUSH [tag]",
-                                "value": "28"
-                            },
-                            {
-                                "begin": 891,
-                                "end": 926,
-                                "name": "JUMP"
-                            },
-                            {
-                                "begin": 891,
-                                "end": 926,
-                                "name": "tag",
-                                "value": "27"
-                            },
-                            {
-                                "begin": 891,
-                                "end": 926,
-                                "name": "JUMPDEST"
-                            },
-                            {
-                                "begin": 891,
-                                "end": 926,
-                                "name": "PUSH",
-                                "value": "40"
-                            },
-                            {
-                                "begin": 891,
-                                "end": 926,
-                                "name": "DUP1"
-                            },
-                            {
-                                "begin": 891,
-                                "end": 926,
-                                "name": "MLOAD"
-                            },
-                            {
-                                "begin": 891,
-                                "end": 926,
-                                "name": "PUSH",
-                                "value": "FF"
-                            },
-                            {
-                                "begin": 891,
-                                "end": 926,
-                                "name": "SWAP1"
-                            },
-                            {
-                                "begin": 891,
-                                "end": 926,
-                                "name": "SWAP3"
-                            },
-                            {
-                                "begin": 891,
-                                "end": 926,
-                                "name": "AND"
-                            },
-                            {
-                                "begin": 891,
-                                "end": 926,
-                                "name": "DUP3"
-                            },
-                            {
-                                "begin": 891,
-                                "end": 926,
-                                "name": "MSTORE"
-                            },
-                            {
-                                "begin": 891,
-                                "end": 926,
-                                "name": "MLOAD"
-                            },
-                            {
-                                "begin": 891,
-                                "end": 926,
-                                "name": "SWAP1"
-                            },
-                            {
-                                "begin": 891,
-                                "end": 926,
-                                "name": "DUP2"
-                            },
-                            {
-                                "begin": 891,
-                                "end": 926,
-                                "name": "SWAP1"
-                            },
-                            {
-                                "begin": 891,
-                                "end": 926,
-                                "name": "SUB"
-                            },
-                            {
-                                "begin": 891,
-                                "end": 926,
-                                "name": "PUSH",
-                                "value": "20"
-                            },
-                            {
-                                "begin": 891,
-                                "end": 926,
-                                "name": "ADD"
-                            },
-                            {
-                                "begin": 891,
-                                "end": 926,
-                                "name": "SWAP1"
-                            },
-                            {
-                                "begin": 891,
-                                "end": 926,
-                                "name": "RETURN"
-                            },
-                            {
-                                "begin": 982,
-                                "end": 1081,
-                                "name": "tag",
-                                "value": "7"
-                            },
-                            {
-                                "begin": 982,
-                                "end": 1081,
-                                "name": "JUMPDEST"
-                            },
-                            {
-                                "begin": 982,
-                                "end": 1081,
-                                "name": "CALLVALUE"
-                            },
-                            {
-                                "begin": 982,
-                                "end": 1081,
-                                "name": "ISZERO"
-                            },
-                            {
-                                "begin": 982,
-                                "end": 1081,
-                                "name": "PUSH [tag]",
-                                "value": "29"
-                            },
-                            {
-                                "begin": 982,
-                                "end": 1081,
-                                "name": "JUMPI"
-                            },
-                            {
-                                "begin": 982,
-                                "end": 1081,
-                                "name": "INVALID"
-                            },
-                            {
-                                "begin": 982,
-                                "end": 1081,
-                                "name": "tag",
-                                "value": "29"
-                            },
-                            {
-                                "begin": 982,
-                                "end": 1081,
-                                "name": "JUMPDEST"
-                            },
-                            {
-                                "begin": 982,
-                                "end": 1081,
-                                "name": "PUSH [tag]",
-                                "value": "21"
-                            },
-                            {
-                                "begin": 982,
-                                "end": 1081,
-                                "name": "PUSH",
-                                "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
-                            },
-                            {
-                                "begin": 982,
-                                "end": 1081,
-                                "name": "PUSH",
-                                "value": "4"
-                            },
-                            {
-                                "begin": 982,
-                                "end": 1081,
-                                "name": "CALLDATALOAD"
-                            },
-                            {
-                                "begin": 982,
-                                "end": 1081,
-                                "name": "AND"
-                            },
-                            {
-                                "begin": 982,
-                                "end": 1081,
-                                "name": "PUSH [tag]",
-                                "value": "31"
-                            },
-                            {
-                                "begin": 982,
-                                "end": 1081,
-                                "name": "JUMP"
-                            },
-                            {
-                                "begin": 982,
-                                "end": 1081,
-                                "name": "tag",
-                                "value": "30"
-                            },
-                            {
-                                "begin": 982,
-                                "end": 1081,
-                                "name": "JUMPDEST"
-                            },
-                            {
-                                "begin": 982,
-                                "end": 1081,
-                                "name": "PUSH",
-                                "value": "40"
-                            },
-                            {
-                                "begin": 982,
-                                "end": 1081,
-                                "name": "DUP1"
-                            },
-                            {
-                                "begin": 982,
-                                "end": 1081,
-                                "name": "MLOAD"
-                            },
-                            {
-                                "begin": 982,
-                                "end": 1081,
-                                "name": "SWAP2"
-                            },
-                            {
-                                "begin": 982,
-                                "end": 1081,
-                                "name": "DUP3"
-                            },
-                            {
-                                "begin": 982,
-                                "end": 1081,
-                                "name": "MSTORE"
-                            },
-                            {
-                                "begin": 982,
-                                "end": 1081,
-                                "name": "MLOAD"
-                            },
-                            {
-                                "begin": 982,
-                                "end": 1081,
-                                "name": "SWAP1"
-                            },
-                            {
-                                "begin": 982,
-                                "end": 1081,
-                                "name": "DUP2"
-                            },
-                            {
-                                "begin": 982,
-                                "end": 1081,
-                                "name": "SWAP1"
-                            },
-                            {
-                                "begin": 982,
-                                "end": 1081,
-                                "name": "SUB"
-                            },
-                            {
-                                "begin": 982,
-                                "end": 1081,
-                                "name": "PUSH",
-                                "value": "20"
-                            },
-                            {
-                                "begin": 982,
-                                "end": 1081,
-                                "name": "ADD"
-                            },
-                            {
-                                "begin": 982,
-                                "end": 1081,
-                                "name": "SWAP1"
-                            },
-                            {
-                                "begin": 982,
-                                "end": 1081,
-                                "name": "RETURN"
-                            },
-                            {
-                                "begin": 1064,
-                                "end": 1101,
-                                "name": "tag",
-                                "value": "8"
-                            },
-                            {
-                                "begin": 1064,
-                                "end": 1101,
-                                "name": "JUMPDEST"
-                            },
-                            {
-                                "begin": 1064,
-                                "end": 1101,
-                                "name": "CALLVALUE"
-                            },
-                            {
-                                "begin": 1064,
-                                "end": 1101,
-                                "name": "ISZERO"
-                            },
-                            {
-                                "begin": 1064,
-                                "end": 1101,
-                                "name": "PUSH [tag]",
-                                "value": "32"
-                            },
-                            {
-                                "begin": 1064,
-                                "end": 1101,
-                                "name": "JUMPI"
-                            },
-                            {
-                                "begin": 1064,
-                                "end": 1101,
-                                "name": "INVALID"
-                            },
-                            {
-                                "begin": 1064,
-                                "end": 1101,
-                                "name": "tag",
-                                "value": "32"
-                            },
-                            {
-                                "begin": 1064,
-                                "end": 1101,
-                                "name": "JUMPDEST"
-                            },
-                            {
-                                "begin": 1064,
-                                "end": 1101,
-                                "name": "PUSH [tag]",
-                                "value": "12"
-                            },
-                            {
-                                "begin": 1064,
-                                "end": 1101,
-                                "name": "PUSH [tag]",
-                                "value": "34"
-                            },
-                            {
-                                "begin": 1064,
-                                "end": 1101,
-                                "name": "JUMP"
-                            },
-                            {
-                                "begin": 1064,
-                                "end": 1101,
-                                "name": "tag",
-                                "value": "33"
-                            },
-                            {
-                                "begin": 1064,
-                                "end": 1101,
-                                "name": "JUMPDEST"
-                            },
-                            {
-                                "begin": 1064,
-                                "end": 1101,
-                                "name": "PUSH",
-                                "value": "40"
-                            },
-                            {
-                                "begin": 1064,
-                                "end": 1101,
-                                "name": "DUP1"
-                            },
-                            {
-                                "begin": 1064,
-                                "end": 1101,
-                                "name": "MLOAD"
-                            },
-                            {
-                                "begin": 1064,
-                                "end": 1101,
-                                "name": "PUSH",
-                                "value": "20"
-                            },
-                            {
-                                "begin": 1064,
-                                "end": 1101,
-                                "name": "DUP1"
-                            },
-                            {
-                                "begin": 1064,
-                                "end": 1101,
-                                "name": "DUP3"
-                            },
-                            {
-                                "begin": 1064,
-                                "end": 1101,
-                                "name": "MSTORE"
-                            },
-                            {
-                                "begin": 1064,
-                                "end": 1101,
-                                "name": "DUP4"
-                            },
-                            {
-                                "begin": 1064,
-                                "end": 1101,
-                                "name": "MLOAD"
-                            },
-                            {
-                                "begin": 1064,
-                                "end": 1101,
-                                "name": "DUP2"
-                            },
-                            {
-                                "begin": 1064,
-                                "end": 1101,
-                                "name": "DUP4"
-                            },
-                            {
-                                "begin": 1064,
-                                "end": 1101,
-                                "name": "ADD"
-                            },
-                            {
-                                "begin": 1064,
-                                "end": 1101,
-                                "name": "MSTORE"
-                            },
-                            {
-                                "begin": 1064,
-                                "end": 1101,
-                                "name": "DUP4"
-                            },
-                            {
-                                "begin": 1064,
-                                "end": 1101,
-                                "name": "MLOAD"
-                            },
-                            {
-                                "begin": 1064,
-                                "end": 1101,
-                                "name": "SWAP2"
-                            },
-                            {
-                                "begin": 1064,
-                                "end": 1101,
-                                "name": "SWAP3"
-                            },
-                            {
-                                "begin": 1064,
-                                "end": 1101,
-                                "name": "DUP4"
-                            },
-                            {
-                                "begin": 1064,
-                                "end": 1101,
-                                "name": "SWAP3"
-                            },
-                            {
-                                "begin": 1064,
-                                "end": 1101,
-                                "name": "SWAP1"
-                            },
-                            {
-                                "begin": 1064,
-                                "end": 1101,
-                                "name": "DUP4"
-                            },
-                            {
-                                "begin": 1064,
-                                "end": 1101,
-                                "name": "ADD"
-                            },
-                            {
-                                "begin": 1064,
-                                "end": 1101,
-                                "name": "SWAP2"
-                            },
-                            {
-                                "begin": 1064,
-                                "end": 1101,
-                                "name": "DUP6"
-                            },
-                            {
-                                "begin": 1064,
-                                "end": 1101,
-                                "name": "ADD"
-                            },
-                            {
-                                "begin": 1064,
-                                "end": 1101,
-                                "name": "SWAP1"
-                            },
-                            {
-                                "begin": 1064,
-                                "end": 1101,
-                                "name": "DUP1"
-                            },
-                            {
-                                "begin": 1064,
-                                "end": 1101,
-                                "name": "DUP4"
-                            },
-                            {
-                                "begin": 1064,
-                                "end": 1101,
-                                "name": "DUP4"
-                            },
-                            {
-                                "begin": 18,
-                                "end": 20,
-                                "name": "DUP3"
-                            },
-                            {
-                                "begin": 18,
-                                "end": 20,
-                                "name": "ISZERO"
-                            },
-                            {
-                                "begin": 13,
-                                "end": 16,
-                                "name": "PUSH [tag]",
-                                "value": "14"
-                            },
-                            {
-                                "begin": 7,
-                                "end": 12,
-                                "name": "JUMPI"
-                            },
-                            {
-                                "begin": 32,
-                                "end": 37,
-                                "name": "tag",
-                                "value": "36"
-                            },
-                            {
-                                "begin": 32,
-                                "end": 37,
-                                "name": "JUMPDEST"
-                            },
-                            {
-                                "begin": 59,
-                                "end": 62,
-                                "name": "DUP1"
-                            },
-                            {
-                                "begin": 53,
-                                "end": 58,
-                                "name": "MLOAD"
-                            },
-                            {
-                                "begin": 48,
-                                "end": 51,
-                                "name": "DUP3"
-                            },
-                            {
-                                "begin": 41,
-                                "end": 47,
-                                "name": "MSTORE"
-                            },
-                            {
-                                "begin": 93,
-                                "end": 95,
-                                "name": "PUSH",
-                                "value": "20"
-                            },
-                            {
-                                "begin": 88,
-                                "end": 91,
-                                "name": "DUP4"
-                            },
-                            {
-                                "begin": 85,
-                                "end": 87,
-                                "name": "GT"
-                            },
-                            {
-                                "begin": 78,
-                                "end": 84,
-                                "name": "ISZERO"
-                            },
-                            {
-                                "begin": 73,
-                                "end": 76,
-                                "name": "PUSH [tag]",
-                                "value": "14"
-                            },
-                            {
-                                "begin": 67,
-                                "end": 72,
-                                "name": "JUMPI"
-                            },
-                            {
-                                "begin": 152,
-                                "end": 155,
-                                "name": "PUSH",
-                                "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0"
-                            },
-                            {
-                                "begin": 152,
-                                "end": 155,
-                                "name": "SWAP1"
-                            },
-                            {
-                                "begin": 152,
-                                "end": 155,
-                                "name": "SWAP3"
-                            },
-                            {
-                                "begin": 152,
-                                "end": 155,
-                                "name": "ADD"
-                            },
-                            {
-                                "begin": 152,
-                                "end": 155,
-                                "name": "SWAP2"
-                            },
-                            {
-                                "begin": 117,
-                                "end": 119,
-                                "name": "PUSH",
-                                "value": "20"
-                            },
-                            {
-                                "begin": 108,
-                                "end": 111,
-                                "name": "SWAP2"
-                            },
-                            {
-                                "begin": 108,
-                                "end": 111,
-                                "name": "DUP3"
-                            },
-                            {
-                                "begin": 108,
-                                "end": 111,
-                                "name": "ADD"
-                            },
-                            {
-                                "begin": 108,
-                                "end": 111,
-                                "name": "SWAP2"
-                            },
-                            {
-                                "begin": 130,
-                                "end": 133,
-                                "name": "ADD"
-                            },
-                            {
-                                "begin": 172,
-                                "end": 177,
-                                "name": "PUSH [tag]",
-                                "value": "15"
-                            },
-                            {
-                                "begin": 167,
-                                "end": 171,
-                                "name": "JUMP"
-                            },
-                            {
-                                "begin": 181,
-                                "end": 184,
-                                "name": "tag",
-                                "value": "35"
-                            },
-                            {
-                                "begin": 181,
-                                "end": 184,
-                                "name": "JUMPDEST"
-                            },
-                            {
-                                "begin": 3,
-                                "end": 189,
-                                "name": "POP"
-                            },
-                            {
-                                "begin": 3,
-                                "end": 189,
-                                "name": "POP"
-                            },
-                            {
-                                "begin": 3,
-                                "end": 189,
-                                "name": "POP"
-                            },
-                            {
-                                "begin": 3,
-                                "end": 189,
-                                "name": "SWAP1"
-                            },
-                            {
-                                "begin": 3,
-                                "end": 189,
-                                "name": "POP"
-                            },
-                            {
-                                "begin": 3,
-                                "end": 189,
-                                "name": "SWAP1"
-                            },
-                            {
-                                "begin": 3,
-                                "end": 189,
-                                "name": "DUP2"
-                            },
-                            {
-                                "begin": 3,
-                                "end": 189,
-                                "name": "ADD"
-                            },
-                            {
-                                "begin": 3,
-                                "end": 189,
-                                "name": "SWAP1"
-                            },
-                            {
-                                "begin": 3,
-                                "end": 189,
-                                "name": "PUSH",
-                                "value": "1F"
-                            },
-                            {
-                                "begin": 3,
-                                "end": 189,
-                                "name": "AND"
-                            },
-                            {
-                                "begin": 3,
-                                "end": 189,
-                                "name": "DUP1"
-                            },
-                            {
-                                "begin": 3,
-                                "end": 189,
-                                "name": "ISZERO"
-                            },
-                            {
-                                "begin": 3,
-                                "end": 189,
-                                "name": "PUSH [tag]",
-                                "value": "16"
-                            },
-                            {
-                                "begin": 3,
-                                "end": 189,
-                                "name": "JUMPI"
-                            },
-                            {
-                                "begin": 3,
-                                "end": 189,
-                                "name": "DUP1"
-                            },
-                            {
-                                "begin": 3,
-                                "end": 189,
-                                "name": "DUP3"
-                            },
-                            {
-                                "begin": 3,
-                                "end": 189,
-                                "name": "SUB"
-                            },
-                            {
-                                "begin": 3,
-                                "end": 189,
-                                "name": "DUP1"
-                            },
-                            {
-                                "begin": 3,
-                                "end": 189,
-                                "name": "MLOAD"
-                            },
-                            {
-                                "begin": 3,
-                                "end": 189,
-                                "name": "PUSH",
-                                "value": "1"
-                            },
-                            {
-                                "begin": 3,
-                                "end": 189,
-                                "name": "DUP4"
-                            },
-                            {
-                                "begin": 3,
-                                "end": 189,
-                                "name": "PUSH",
-                                "value": "20"
-                            },
-                            {
-                                "begin": 3,
-                                "end": 189,
-                                "name": "SUB"
-                            },
-                            {
-                                "begin": 3,
-                                "end": 189,
-                                "name": "PUSH",
-                                "value": "100"
-                            },
-                            {
-                                "begin": 3,
-                                "end": 189,
-                                "name": "EXP"
-                            },
-                            {
-                                "begin": 3,
-                                "end": 189,
-                                "name": "SUB"
-                            },
-                            {
-                                "begin": 3,
-                                "end": 189,
-                                "name": "NOT"
-                            },
-                            {
-                                "begin": 3,
-                                "end": 189,
-                                "name": "AND"
-                            },
-                            {
-                                "begin": 3,
-                                "end": 189,
-                                "name": "DUP2"
-                            },
-                            {
-                                "begin": 3,
-                                "end": 189,
-                                "name": "MSTORE"
-                            },
-                            {
-                                "begin": 3,
-                                "end": 189,
-                                "name": "PUSH",
-                                "value": "20"
-                            },
-                            {
-                                "begin": 3,
-                                "end": 189,
-                                "name": "ADD"
-                            },
-                            {
-                                "begin": 3,
-                                "end": 189,
-                                "name": "SWAP2"
-                            },
-                            {
-                                "begin": 3,
-                                "end": 189,
-                                "name": "POP"
-                            },
-                            {
-                                "begin": 3,
-                                "end": 189,
-                                "name": "tag",
-                                "value": "37"
-                            },
-                            {
-                                "begin": 3,
-                                "end": 189,
-                                "name": "JUMPDEST"
-                            },
-                            {
-                                "begin": 3,
-                                "end": 189,
-                                "name": "POP"
-                            },
-                            {
-                                "begin": 3,
-                                "end": 189,
-                                "name": "SWAP3"
-                            },
-                            {
-                                "begin": 3,
-                                "end": 189,
-                                "name": "POP"
-                            },
-                            {
-                                "begin": 3,
-                                "end": 189,
-                                "name": "POP"
-                            },
-                            {
-                                "begin": 3,
-                                "end": 189,
-                                "name": "POP"
-                            },
-                            {
-                                "begin": 3,
-                                "end": 189,
-                                "name": "PUSH",
-                                "value": "40"
-                            },
-                            {
-                                "begin": 3,
-                                "end": 189,
-                                "name": "MLOAD"
-                            },
-                            {
-                                "begin": 3,
-                                "end": 189,
-                                "name": "DUP1"
-                            },
-                            {
-                                "begin": 3,
-                                "end": 189,
-                                "name": "SWAP2"
-                            },
-                            {
-                                "begin": 3,
-                                "end": 189,
-                                "name": "SUB"
-                            },
-                            {
-                                "begin": 3,
-                                "end": 189,
-                                "name": "SWAP1"
-                            },
-                            {
-                                "begin": 3,
-                                "end": 189,
-                                "name": "RETURN"
-                            },
-                            {
-                                "begin": 125,
-                                "end": 535,
-                                "name": "tag",
-                                "value": "9"
-                            },
-                            {
-                                "begin": 125,
-                                "end": 535,
-                                "name": "JUMPDEST"
-                            },
-                            {
-                                "begin": 125,
-                                "end": 535,
-                                "name": "CALLVALUE"
-                            },
-                            {
-                                "begin": 125,
-                                "end": 535,
-                                "name": "ISZERO"
-                            },
-                            {
-                                "begin": 125,
-                                "end": 535,
-                                "name": "PUSH [tag]",
-                                "value": "38"
-                            },
-                            {
-                                "begin": 125,
-                                "end": 535,
-                                "name": "JUMPI"
-                            },
-                            {
-                                "begin": 125,
-                                "end": 535,
-                                "name": "INVALID"
-                            },
-                            {
-                                "begin": 125,
-                                "end": 535,
-                                "name": "tag",
-                                "value": "38"
-                            },
-                            {
-                                "begin": 125,
-                                "end": 535,
-                                "name": "JUMPDEST"
-                            },
-                            {
-                                "begin": 125,
-                                "end": 535,
-                                "name": "PUSH [tag]",
-                                "value": "18"
-                            },
-                            {
-                                "begin": 125,
-                                "end": 535,
-                                "name": "PUSH",
-                                "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
-                            },
-                            {
-                                "begin": 125,
-                                "end": 535,
-                                "name": "PUSH",
-                                "value": "4"
-                            },
-                            {
-                                "begin": 125,
-                                "end": 535,
-                                "name": "CALLDATALOAD"
-                            },
-                            {
-                                "begin": 125,
-                                "end": 535,
-                                "name": "AND"
-                            },
-                            {
-                                "begin": 125,
-                                "end": 535,
-                                "name": "PUSH",
-                                "value": "24"
-                            },
-                            {
-                                "begin": 125,
-                                "end": 535,
-                                "name": "CALLDATALOAD"
-                            },
-                            {
-                                "begin": 125,
-                                "end": 535,
-                                "name": "PUSH [tag]",
-                                "value": "40"
-                            },
-                            {
-                                "begin": 125,
-                                "end": 535,
-                                "name": "JUMP"
-                            },
-                            {
-                                "begin": 125,
-                                "end": 535,
-                                "name": "tag",
-                                "value": "39"
-                            },
-                            {
-                                "begin": 125,
-                                "end": 535,
-                                "name": "JUMPDEST"
-                            },
-                            {
-                                "begin": 125,
-                                "end": 535,
-                                "name": "PUSH",
-                                "value": "40"
-                            },
-                            {
-                                "begin": 125,
-                                "end": 535,
-                                "name": "DUP1"
-                            },
-                            {
-                                "begin": 125,
-                                "end": 535,
-                                "name": "MLOAD"
-                            },
-                            {
-                                "begin": 125,
-                                "end": 535,
-                                "name": "SWAP2"
-                            },
-                            {
-                                "begin": 125,
-                                "end": 535,
-                                "name": "ISZERO"
-                            },
-                            {
-                                "begin": 125,
-                                "end": 535,
-                                "name": "ISZERO"
-                            },
-                            {
-                                "begin": 125,
-                                "end": 535,
-                                "name": "DUP3"
-                            },
-                            {
-                                "begin": 125,
-                                "end": 535,
-                                "name": "MSTORE"
-                            },
-                            {
-                                "begin": 125,
-                                "end": 535,
-                                "name": "MLOAD"
-                            },
-                            {
-                                "begin": 125,
-                                "end": 535,
-                                "name": "SWAP1"
-                            },
-                            {
-                                "begin": 125,
-                                "end": 535,
-                                "name": "DUP2"
-                            },
-                            {
-                                "begin": 125,
-                                "end": 535,
-                                "name": "SWAP1"
-                            },
-                            {
-                                "begin": 125,
-                                "end": 535,
-                                "name": "SUB"
-                            },
-                            {
-                                "begin": 125,
-                                "end": 535,
-                                "name": "PUSH",
-                                "value": "20"
-                            },
-                            {
-                                "begin": 125,
-                                "end": 535,
-                                "name": "ADD"
-                            },
-                            {
-                                "begin": 125,
-                                "end": 535,
-                                "name": "SWAP1"
-                            },
-                            {
-                                "begin": 125,
-                                "end": 535,
-                                "name": "RETURN"
-                            },
-                            {
-                                "begin": 1280,
-                                "end": 1406,
-                                "name": "tag",
-                                "value": "10"
-                            },
-                            {
-                                "begin": 1280,
-                                "end": 1406,
-                                "name": "JUMPDEST"
-                            },
-                            {
-                                "begin": 1280,
-                                "end": 1406,
-                                "name": "CALLVALUE"
-                            },
-                            {
-                                "begin": 1280,
-                                "end": 1406,
-                                "name": "ISZERO"
-                            },
-                            {
-                                "begin": 1280,
-                                "end": 1406,
-                                "name": "PUSH [tag]",
-                                "value": "41"
-                            },
-                            {
-                                "begin": 1280,
-                                "end": 1406,
-                                "name": "JUMPI"
-                            },
-                            {
-                                "begin": 1280,
-                                "end": 1406,
-                                "name": "INVALID"
-                            },
-                            {
-                                "begin": 1280,
-                                "end": 1406,
-                                "name": "tag",
-                                "value": "41"
-                            },
-                            {
-                                "begin": 1280,
-                                "end": 1406,
-                                "name": "JUMPDEST"
-                            },
-                            {
-                                "begin": 1280,
-                                "end": 1406,
-                                "name": "PUSH [tag]",
-                                "value": "21"
-                            },
-                            {
-                                "begin": 1280,
-                                "end": 1406,
-                                "name": "PUSH",
-                                "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
-                            },
-                            {
-                                "begin": 1280,
-                                "end": 1406,
-                                "name": "PUSH",
-                                "value": "4"
-                            },
-                            {
-                                "begin": 1280,
-                                "end": 1406,
-                                "name": "CALLDATALOAD"
-                            },
-                            {
-                                "begin": 1280,
-                                "end": 1406,
-                                "name": "DUP2"
-                            },
-                            {
-                                "begin": 1280,
-                                "end": 1406,
-                                "name": "AND"
-                            },
-                            {
-                                "begin": 1280,
-                                "end": 1406,
-                                "name": "SWAP1"
-                            },
-                            {
-                                "begin": 1280,
-                                "end": 1406,
-                                "name": "PUSH",
-                                "value": "24"
-                            },
-                            {
-                                "begin": 1280,
-                                "end": 1406,
-                                "name": "CALLDATALOAD"
-                            },
-                            {
-                                "begin": 1280,
-                                "end": 1406,
-                                "name": "AND"
-                            },
-                            {
-                                "begin": 1280,
-                                "end": 1406,
-                                "name": "PUSH [tag]",
-                                "value": "43"
-                            },
-                            {
-                                "begin": 1280,
-                                "end": 1406,
-                                "name": "JUMP"
-                            },
-                            {
-                                "begin": 1280,
-                                "end": 1406,
-                                "name": "tag",
-                                "value": "42"
-                            },
-                            {
-                                "begin": 1280,
-                                "end": 1406,
-                                "name": "JUMPDEST"
-                            },
-                            {
-                                "begin": 1280,
-                                "end": 1406,
-                                "name": "PUSH",
-                                "value": "40"
-                            },
-                            {
-                                "begin": 1280,
-                                "end": 1406,
-                                "name": "DUP1"
-                            },
-                            {
-                                "begin": 1280,
-                                "end": 1406,
-                                "name": "MLOAD"
-                            },
-                            {
-                                "begin": 1280,
-                                "end": 1406,
-                                "name": "SWAP2"
-                            },
-                            {
-                                "begin": 1280,
-                                "end": 1406,
-                                "name": "DUP3"
-                            },
-                            {
-                                "begin": 1280,
-                                "end": 1406,
-                                "name": "MSTORE"
-                            },
-                            {
-                                "begin": 1280,
-                                "end": 1406,
-                                "name": "MLOAD"
-                            },
-                            {
-                                "begin": 1280,
-                                "end": 1406,
-                                "name": "SWAP1"
-                            },
-                            {
-                                "begin": 1280,
-                                "end": 1406,
-                                "name": "DUP2"
-                            },
-                            {
-                                "begin": 1280,
-                                "end": 1406,
-                                "name": "SWAP1"
-                            },
-                            {
-                                "begin": 1280,
-                                "end": 1406,
-                                "name": "SUB"
-                            },
-                            {
-                                "begin": 1280,
-                                "end": 1406,
-                                "name": "PUSH",
-                                "value": "20"
-                            },
-                            {
-                                "begin": 1280,
-                                "end": 1406,
-                                "name": "ADD"
-                            },
-                            {
-                                "begin": 1280,
-                                "end": 1406,
-                                "name": "SWAP1"
-                            },
-                            {
-                                "begin": 1280,
-                                "end": 1406,
-                                "name": "RETURN"
-                            },
-                            {
-                                "begin": 1009,
-                                "end": 1058,
-                                "name": "tag",
-                                "value": "13"
-                            },
-                            {
-                                "begin": 1009,
-                                "end": 1058,
-                                "name": "JUMPDEST"
-                            },
-                            {
-                                "begin": 1009,
-                                "end": 1058,
-                                "name": "PUSH",
-                                "value": "40"
-                            },
-                            {
-                                "begin": 1009,
-                                "end": 1058,
-                                "name": "DUP1"
-                            },
-                            {
-                                "begin": 1009,
-                                "end": 1058,
-                                "name": "MLOAD"
-                            },
-                            {
-                                "begin": 1009,
-                                "end": 1058,
-                                "name": "DUP1"
-                            },
-                            {
-                                "begin": 1009,
-                                "end": 1058,
-                                "name": "DUP3"
-                            },
-                            {
-                                "begin": 1009,
-                                "end": 1058,
-                                "name": "ADD"
-                            },
-                            {
-                                "begin": 1009,
-                                "end": 1058,
-                                "name": "SWAP1"
-                            },
-                            {
-                                "begin": 1009,
-                                "end": 1058,
-                                "name": "SWAP2"
-                            },
-                            {
-                                "begin": 1009,
-                                "end": 1058,
-                                "name": "MSTORE"
-                            },
-                            {
-                                "begin": 1009,
-                                "end": 1058,
-                                "name": "PUSH",
-                                "value": "11"
-                            },
-                            {
-                                "begin": 1009,
-                                "end": 1058,
-                                "name": "DUP2"
-                            },
-                            {
-                                "begin": 1009,
-                                "end": 1058,
-                                "name": "MSTORE"
-                            },
-                            {
-                                "begin": 1009,
-                                "end": 1058,
-                                "name": "PUSH",
-                                "value": "30782050726F746F636F6C20546F6B656E000000000000000000000000000000"
-                            },
-                            {
-                                "begin": 1009,
-                                "end": 1058,
-                                "name": "PUSH",
-                                "value": "20"
-                            },
-                            {
-                                "begin": 1009,
-                                "end": 1058,
-                                "name": "DUP3"
-                            },
-                            {
-                                "begin": 1009,
-                                "end": 1058,
-                                "name": "ADD"
-                            },
-                            {
-                                "begin": 1009,
-                                "end": 1058,
-                                "name": "MSTORE"
-                            },
-                            {
-                                "begin": 1009,
-                                "end": 1058,
-                                "name": "DUP2"
-                            },
-                            {
-                                "begin": 1009,
-                                "end": 1058,
-                                "name": "JUMP",
-                                "value": "[out]"
-                            },
-                            {
-                                "begin": 1087,
-                                "end": 1274,
-                                "name": "tag",
-                                "value": "19"
-                            },
-                            {
-                                "begin": 1087,
-                                "end": 1274,
-                                "name": "JUMPDEST"
-                            },
-                            {
-                                "begin": 1160,
-                                "end": 1179,
-                                "name": "PUSH",
-                                "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
-                            },
-                            {
-                                "begin": 1168,
-                                "end": 1178,
-                                "name": "CALLER"
-                            },
-                            {
-                                "begin": 1160,
-                                "end": 1179,
-                                "name": "DUP2"
-                            },
-                            {
-                                "begin": 1160,
-                                "end": 1179,
-                                "name": "AND"
-                            },
-                            {
-                                "begin": 1144,
-                                "end": 1148,
-                                "name": "PUSH",
-                                "value": "0"
-                            },
-                            {
-                                "begin": 1160,
-                                "end": 1179,
-                                "name": "DUP2"
-                            },
-                            {
-                                "begin": 1160,
-                                "end": 1179,
-                                "name": "DUP2"
-                            },
-                            {
-                                "begin": 1160,
-                                "end": 1179,
-                                "name": "MSTORE"
-                            },
-                            {
-                                "begin": 1160,
-                                "end": 1167,
-                                "name": "PUSH",
-                                "value": "1"
-                            },
-                            {
-                                "begin": 1160,
-                                "end": 1179,
-                                "name": "PUSH",
-                                "value": "20"
-                            },
-                            {
-                                "begin": 1160,
-                                "end": 1179,
-                                "name": "SWAP1"
-                            },
-                            {
-                                "begin": 1160,
-                                "end": 1179,
-                                "name": "DUP2"
-                            },
-                            {
-                                "begin": 1160,
-                                "end": 1179,
-                                "name": "MSTORE"
-                            },
-                            {
-                                "begin": 1160,
-                                "end": 1179,
-                                "name": "PUSH",
-                                "value": "40"
-                            },
-                            {
-                                "begin": 1160,
-                                "end": 1179,
-                                "name": "DUP1"
-                            },
-                            {
-                                "begin": 1160,
-                                "end": 1179,
-                                "name": "DUP4"
-                            },
-                            {
-                                "begin": 1160,
-                                "end": 1179,
-                                "name": "SHA3"
-                            },
-                            {
-                                "begin": 1160,
-                                "end": 1189,
-                                "name": "SWAP5"
-                            },
-                            {
-                                "begin": 1160,
-                                "end": 1189,
-                                "name": "DUP8"
-                            },
-                            {
-                                "begin": 1160,
-                                "end": 1189,
-                                "name": "AND"
-                            },
-                            {
-                                "begin": 1160,
-                                "end": 1189,
-                                "name": "DUP1"
-                            },
-                            {
-                                "begin": 1160,
-                                "end": 1189,
-                                "name": "DUP5"
-                            },
-                            {
-                                "begin": 1160,
-                                "end": 1189,
-                                "name": "MSTORE"
-                            },
-                            {
-                                "begin": 1160,
-                                "end": 1189,
-                                "name": "SWAP5"
-                            },
-                            {
-                                "begin": 1160,
-                                "end": 1189,
-                                "name": "DUP3"
-                            },
-                            {
-                                "begin": 1160,
-                                "end": 1189,
-                                "name": "MSTORE"
-                            },
-                            {
-                                "begin": 1160,
-                                "end": 1189,
-                                "name": "DUP1"
-                            },
-                            {
-                                "begin": 1160,
-                                "end": 1189,
-                                "name": "DUP4"
-                            },
-                            {
-                                "begin": 1160,
-                                "end": 1189,
-                                "name": "SHA3"
-                            },
-                            {
-                                "begin": 1160,
-                                "end": 1198,
-                                "name": "DUP7"
-                            },
-                            {
-                                "begin": 1160,
-                                "end": 1198,
-                                "name": "SWAP1"
-                            },
-                            {
-                                "begin": 1160,
-                                "end": 1198,
-                                "name": "SSTORE"
-                            },
-                            {
-                                "begin": 1208,
-                                "end": 1246,
-                                "name": "DUP1"
-                            },
-                            {
-                                "begin": 1208,
-                                "end": 1246,
-                                "name": "MLOAD"
-                            },
-                            {
-                                "begin": 1208,
-                                "end": 1246,
-                                "name": "DUP7"
-                            },
-                            {
-                                "begin": 1208,
-                                "end": 1246,
-                                "name": "DUP2"
-                            },
-                            {
-                                "begin": 1208,
-                                "end": 1246,
-                                "name": "MSTORE"
-                            },
-                            {
-                                "begin": 1208,
-                                "end": 1246,
-                                "name": "SWAP1"
-                            },
-                            {
-                                "begin": 1208,
-                                "end": 1246,
-                                "name": "MLOAD"
-                            },
-                            {
-                                "begin": 1144,
-                                "end": 1148,
-                                "name": "SWAP3"
-                            },
-                            {
-                                "begin": 1144,
-                                "end": 1148,
-                                "name": "SWAP5"
-                            },
-                            {
-                                "begin": 1160,
-                                "end": 1189,
-                                "name": "SWAP4"
-                            },
-                            {
-                                "begin": 1160,
-                                "end": 1179,
-                                "name": "SWAP3"
-                            },
-                            {
-                                "begin": 1208,
-                                "end": 1246,
-                                "name": "PUSH",
-                                "value": "8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925"
-                            },
-                            {
-                                "begin": 1208,
-                                "end": 1246,
-                                "name": "SWAP3"
-                            },
-                            {
-                                "begin": 1208,
-                                "end": 1246,
-                                "name": "SWAP2"
-                            },
-                            {
-                                "begin": 1208,
-                                "end": 1246,
-                                "name": "DUP2"
-                            },
-                            {
-                                "begin": 1208,
-                                "end": 1246,
-                                "name": "SWAP1"
-                            },
-                            {
-                                "begin": 1208,
-                                "end": 1246,
-                                "name": "SUB"
-                            },
-                            {
-                                "begin": 1208,
-                                "end": 1246,
-                                "name": "SWAP1"
-                            },
-                            {
-                                "begin": 1208,
-                                "end": 1246,
-                                "name": "SWAP2"
-                            },
-                            {
-                                "begin": 1208,
-                                "end": 1246,
-                                "name": "ADD"
-                            },
-                            {
-                                "begin": 1208,
-                                "end": 1246,
-                                "name": "SWAP1"
-                            },
-                            {
-                                "begin": 1208,
-                                "end": 1246,
-                                "name": "LOG3"
-                            },
-                            {
-                                "begin": -1,
-                                "end": -1,
-                                "name": "POP"
-                            },
-                            {
-                                "begin": 1263,
-                                "end": 1267,
-                                "name": "PUSH",
-                                "value": "1"
-                            },
-                            {
-                                "begin": 1087,
-                                "end": 1274,
-                                "name": "tag",
-                                "value": "44"
-                            },
-                            {
-                                "begin": 1087,
-                                "end": 1274,
-                                "name": "JUMPDEST"
-                            },
-                            {
-                                "begin": 1087,
-                                "end": 1274,
-                                "name": "SWAP3"
-                            },
-                            {
-                                "begin": 1087,
-                                "end": 1274,
-                                "name": "SWAP2"
-                            },
-                            {
-                                "begin": 1087,
-                                "end": 1274,
-                                "name": "POP"
-                            },
-                            {
-                                "begin": 1087,
-                                "end": 1274,
-                                "name": "POP"
-                            },
-                            {
-                                "begin": 1087,
-                                "end": 1274,
-                                "name": "JUMP",
-                                "value": "[out]"
-                            },
-                            {
-                                "begin": 932,
-                                "end": 964,
-                                "name": "tag",
-                                "value": "22"
-                            },
-                            {
-                                "begin": 932,
-                                "end": 964,
-                                "name": "JUMPDEST"
-                            },
-                            {
-                                "begin": 932,
-                                "end": 964,
-                                "name": "PUSH",
-                                "value": "3"
-                            },
-                            {
-                                "begin": 932,
-                                "end": 964,
-                                "name": "SLOAD"
-                            },
-                            {
-                                "begin": 932,
-                                "end": 964,
-                                "name": "DUP2"
-                            },
-                            {
-                                "begin": 932,
-                                "end": 964,
-                                "name": "JUMP",
-                                "value": "[out]"
-                            },
-                            {
-                                "begin": 1066,
-                                "end": 1675,
-                                "name": "tag",
-                                "value": "25"
-                            },
-                            {
-                                "begin": 1066,
-                                "end": 1675,
-                                "name": "JUMPDEST"
-                            },
-                            {
-                                "begin": 1198,
-                                "end": 1212,
-                                "name": "PUSH",
-                                "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
-                            },
-                            {
-                                "begin": 1198,
-                                "end": 1212,
-                                "name": "DUP1"
-                            },
-                            {
-                                "begin": 1198,
-                                "end": 1212,
-                                "name": "DUP5"
-                            },
-                            {
-                                "begin": 1198,
-                                "end": 1212,
-                                "name": "AND"
-                            },
-                            {
-                                "begin": 1161,
-                                "end": 1165,
-                                "name": "PUSH",
-                                "value": "0"
-                            },
-                            {
-                                "begin": 1198,
-                                "end": 1212,
-                                "name": "DUP2"
-                            },
-                            {
-                                "begin": 1198,
-                                "end": 1212,
-                                "name": "DUP2"
-                            },
-                            {
-                                "begin": 1198,
-                                "end": 1212,
-                                "name": "MSTORE"
-                            },
-                            {
-                                "begin": 1198,
-                                "end": 1205,
-                                "name": "PUSH",
-                                "value": "1"
-                            },
-                            {
-                                "begin": 1198,
-                                "end": 1212,
-                                "name": "PUSH",
-                                "value": "20"
-                            },
-                            {
-                                "begin": 1198,
-                                "end": 1212,
-                                "name": "SWAP1"
-                            },
-                            {
-                                "begin": 1198,
-                                "end": 1212,
-                                "name": "DUP2"
-                            },
-                            {
-                                "begin": 1198,
-                                "end": 1212,
-                                "name": "MSTORE"
-                            },
-                            {
-                                "begin": 1198,
-                                "end": 1212,
-                                "name": "PUSH",
-                                "value": "40"
-                            },
-                            {
-                                "begin": 1198,
-                                "end": 1212,
-                                "name": "DUP1"
-                            },
-                            {
-                                "begin": 1198,
-                                "end": 1212,
-                                "name": "DUP4"
-                            },
-                            {
-                                "begin": 1198,
-                                "end": 1212,
-                                "name": "SHA3"
-                            },
-                            {
-                                "begin": 1213,
-                                "end": 1223,
-                                "name": "CALLER"
-                            },
-                            {
-                                "begin": 1198,
-                                "end": 1224,
-                                "name": "SWAP1"
-                            },
-                            {
-                                "begin": 1198,
-                                "end": 1224,
-                                "name": "SWAP6"
-                            },
-                            {
-                                "begin": 1198,
-                                "end": 1224,
-                                "name": "AND"
-                            },
-                            {
-                                "begin": 1198,
-                                "end": 1224,
-                                "name": "DUP4"
-                            },
-                            {
-                                "begin": 1198,
-                                "end": 1224,
-                                "name": "MSTORE"
-                            },
-                            {
-                                "begin": 1198,
-                                "end": 1224,
-                                "name": "SWAP4"
-                            },
-                            {
-                                "begin": 1198,
-                                "end": 1224,
-                                "name": "DUP2"
-                            },
-                            {
-                                "begin": 1198,
-                                "end": 1224,
-                                "name": "MSTORE"
-                            },
-                            {
-                                "begin": 1198,
-                                "end": 1224,
-                                "name": "DUP4"
-                            },
-                            {
-                                "begin": 1198,
-                                "end": 1224,
-                                "name": "DUP3"
-                            },
-                            {
-                                "begin": 1198,
-                                "end": 1224,
-                                "name": "SHA3"
-                            },
-                            {
-                                "begin": 1198,
-                                "end": 1224,
-                                "name": "SLOAD"
-                            },
-                            {
-                                "begin": 1238,
-                                "end": 1253,
-                                "name": "SWAP3"
-                            },
-                            {
-                                "begin": 1238,
-                                "end": 1253,
-                                "name": "DUP3"
-                            },
-                            {
-                                "begin": 1238,
-                                "end": 1253,
-                                "name": "MSTORE"
-                            },
-                            {
-                                "begin": 1238,
-                                "end": 1253,
-                                "name": "DUP2"
-                            },
-                            {
-                                "begin": 1238,
-                                "end": 1253,
-                                "name": "SWAP1"
-                            },
-                            {
-                                "begin": 1238,
-                                "end": 1253,
-                                "name": "MSTORE"
-                            },
-                            {
-                                "begin": 1238,
-                                "end": 1253,
-                                "name": "SWAP2"
-                            },
-                            {
-                                "begin": 1238,
-                                "end": 1253,
-                                "name": "DUP3"
-                            },
-                            {
-                                "begin": 1238,
-                                "end": 1253,
-                                "name": "SHA3"
-                            },
-                            {
-                                "begin": 1238,
-                                "end": 1253,
-                                "name": "SLOAD"
-                            },
-                            {
-                                "begin": 1238,
-                                "end": 1263,
-                                "name": "DUP4"
-                            },
-                            {
-                                "begin": 1238,
-                                "end": 1263,
-                                "name": "SWAP1"
-                            },
-                            {
-                                "begin": 1238,
-                                "end": 1263,
-                                "name": "LT"
-                            },
-                            {
-                                "begin": 1238,
-                                "end": 1263,
-                                "name": "DUP1"
-                            },
-                            {
-                                "begin": 1238,
-                                "end": 1263,
-                                "name": "ISZERO"
-                            },
-                            {
-                                "begin": 1238,
-                                "end": 1263,
-                                "name": "SWAP1"
-                            },
-                            {
-                                "begin": 1238,
-                                "end": 1298,
-                                "name": "PUSH [tag]",
-                                "value": "46"
-                            },
-                            {
-                                "begin": 1238,
-                                "end": 1298,
-                                "name": "JUMPI"
-                            },
-                            {
-                                "begin": 1238,
-                                "end": 1298,
-                                "name": "POP"
-                            },
-                            {
-                                "begin": 1292,
-                                "end": 1298,
-                                "name": "DUP3"
-                            },
-                            {
-                                "begin": 1279,
-                                "end": 1288,
-                                "name": "DUP2"
-                            },
-                            {
-                                "begin": 1279,
-                                "end": 1298,
-                                "name": "LT"
-                            },
-                            {
-                                "begin": 1279,
-                                "end": 1298,
-                                "name": "ISZERO"
-                            },
-                            {
-                                "begin": 1238,
-                                "end": 1298,
-                                "name": "tag",
-                                "value": "46"
-                            },
-                            {
-                                "begin": 1238,
-                                "end": 1298,
-                                "name": "JUMPDEST"
-                            },
-                            {
-                                "begin": 1238,
-                                "end": 1353,
-                                "name": "DUP1"
-                            },
-                            {
-                                "begin": 1238,
-                                "end": 1353,
-                                "name": "ISZERO"
-                            },
-                            {
-                                "begin": 1238,
-                                "end": 1353,
-                                "name": "PUSH [tag]",
-                                "value": "47"
-                            },
-                            {
-                                "begin": 1238,
-                                "end": 1353,
-                                "name": "JUMPI"
-                            },
-                            {
-                                "begin": -1,
-                                "end": -1,
-                                "name": "POP"
-                            },
-                            {
-                                "begin": 1340,
-                                "end": 1353,
-                                "name": "PUSH",
-                                "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
-                            },
-                            {
-                                "begin": 1340,
-                                "end": 1353,
-                                "name": "DUP5"
-                            },
-                            {
-                                "begin": 1340,
-                                "end": 1353,
-                                "name": "AND"
-                            },
-                            {
-                                "begin": 1340,
-                                "end": 1348,
-                                "name": "PUSH",
-                                "value": "0"
-                            },
-                            {
-                                "begin": 1340,
-                                "end": 1353,
-                                "name": "SWAP1"
-                            },
-                            {
-                                "begin": 1340,
-                                "end": 1353,
-                                "name": "DUP2"
-                            },
-                            {
-                                "begin": 1340,
-                                "end": 1353,
-                                "name": "MSTORE"
-                            },
-                            {
-                                "begin": 1340,
-                                "end": 1353,
-                                "name": "PUSH",
-                                "value": "20"
-                            },
-                            {
-                                "begin": 1340,
-                                "end": 1353,
-                                "name": "DUP2"
-                            },
-                            {
-                                "begin": 1340,
-                                "end": 1353,
-                                "name": "SWAP1"
-                            },
-                            {
-                                "begin": 1340,
-                                "end": 1353,
-                                "name": "MSTORE"
-                            },
-                            {
-                                "begin": 1340,
-                                "end": 1353,
-                                "name": "PUSH",
-                                "value": "40"
-                            },
-                            {
-                                "begin": 1340,
-                                "end": 1353,
-                                "name": "SWAP1"
-                            },
-                            {
-                                "begin": 1340,
-                                "end": 1353,
-                                "name": "SHA3"
-                            },
-                            {
-                                "begin": 1340,
-                                "end": 1353,
-                                "name": "SLOAD"
-                            },
-                            {
-                                "begin": 1314,
-                                "end": 1336,
-                                "name": "DUP4"
-                            },
-                            {
-                                "begin": 1314,
-                                "end": 1336,
-                                "name": "DUP2"
-                            },
-                            {
-                                "begin": 1314,
-                                "end": 1336,
-                                "name": "ADD"
-                            },
-                            {
-                                "begin": 1314,
-                                "end": 1353,
-                                "name": "LT"
-                            },
-                            {
-                                "begin": 1314,
-                                "end": 1353,
-                                "name": "ISZERO"
-                            },
-                            {
-                                "begin": 1238,
-                                "end": 1353,
-                                "name": "tag",
-                                "value": "47"
-                            },
-                            {
-                                "begin": 1238,
-                                "end": 1353,
-                                "name": "JUMPDEST"
-                            },
-                            {
-                                "begin": 1234,
-                                "end": 1669,
-                                "name": "ISZERO"
-                            },
-                            {
-                                "begin": 1234,
-                                "end": 1669,
-                                "name": "PUSH [tag]",
-                                "value": "48"
-                            },
-                            {
-                                "begin": 1234,
-                                "end": 1669,
-                                "name": "JUMPI"
-                            },
-                            {
-                                "begin": 1378,
-                                "end": 1391,
-                                "name": "PUSH",
-                                "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
-                            },
-                            {
-                                "begin": 1378,
-                                "end": 1391,
-                                "name": "DUP1"
-                            },
-                            {
-                                "begin": 1378,
-                                "end": 1391,
-                                "name": "DUP6"
-                            },
-                            {
-                                "begin": 1378,
-                                "end": 1391,
-                                "name": "AND"
-                            },
-                            {
-                                "begin": 1378,
-                                "end": 1386,
-                                "name": "PUSH",
-                                "value": "0"
-                            },
-                            {
-                                "begin": 1378,
-                                "end": 1391,
-                                "name": "SWAP1"
-                            },
-                            {
-                                "begin": 1378,
-                                "end": 1391,
-                                "name": "DUP2"
-                            },
-                            {
-                                "begin": 1378,
-                                "end": 1391,
-                                "name": "MSTORE"
-                            },
-                            {
-                                "begin": 1378,
-                                "end": 1391,
-                                "name": "PUSH",
-                                "value": "20"
-                            },
-                            {
-                                "begin": 1378,
-                                "end": 1391,
-                                "name": "DUP2"
-                            },
-                            {
-                                "begin": 1378,
-                                "end": 1391,
-                                "name": "SWAP1"
-                            },
-                            {
-                                "begin": 1378,
-                                "end": 1391,
-                                "name": "MSTORE"
-                            },
-                            {
-                                "begin": 1378,
-                                "end": 1391,
-                                "name": "PUSH",
-                                "value": "40"
-                            },
-                            {
-                                "begin": 1378,
-                                "end": 1391,
-                                "name": "DUP1"
-                            },
-                            {
-                                "begin": 1378,
-                                "end": 1391,
-                                "name": "DUP3"
-                            },
-                            {
-                                "begin": 1378,
-                                "end": 1391,
-                                "name": "SHA3"
-                            },
-                            {
-                                "begin": 1378,
-                                "end": 1401,
-                                "name": "DUP1"
-                            },
-                            {
-                                "begin": 1378,
-                                "end": 1401,
-                                "name": "SLOAD"
-                            },
-                            {
-                                "begin": 1378,
-                                "end": 1401,
-                                "name": "DUP8"
-                            },
-                            {
-                                "begin": 1378,
-                                "end": 1401,
-                                "name": "ADD"
-                            },
-                            {
-                                "begin": 1378,
-                                "end": 1401,
-                                "name": "SWAP1"
-                            },
-                            {
-                                "begin": 1378,
-                                "end": 1401,
-                                "name": "SSTORE"
-                            },
-                            {
-                                "begin": 1415,
-                                "end": 1430,
-                                "name": "SWAP2"
-                            },
-                            {
-                                "begin": 1415,
-                                "end": 1430,
-                                "name": "DUP8"
-                            },
-                            {
-                                "begin": 1415,
-                                "end": 1430,
-                                "name": "AND"
-                            },
-                            {
-                                "begin": 1415,
-                                "end": 1430,
-                                "name": "DUP2"
-                            },
-                            {
-                                "begin": 1415,
-                                "end": 1430,
-                                "name": "MSTORE"
-                            },
-                            {
-                                "begin": 1415,
-                                "end": 1430,
-                                "name": "SHA3"
-                            },
-                            {
-                                "begin": 1415,
-                                "end": 1440,
-                                "name": "DUP1"
-                            },
-                            {
-                                "begin": 1415,
-                                "end": 1440,
-                                "name": "SLOAD"
-                            },
-                            {
-                                "begin": 1415,
-                                "end": 1440,
-                                "name": "DUP5"
-                            },
-                            {
-                                "begin": 1415,
-                                "end": 1440,
-                                "name": "SWAP1"
-                            },
-                            {
-                                "begin": 1415,
-                                "end": 1440,
-                                "name": "SUB"
-                            },
-                            {
-                                "begin": 1415,
-                                "end": 1440,
-                                "name": "SWAP1"
-                            },
-                            {
-                                "begin": 1415,
-                                "end": 1440,
-                                "name": "SSTORE"
-                            },
-                            {
-                                "begin": 768,
-                                "end": 778,
-                                "name": "PUSH",
-                                "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
-                            },
-                            {
-                                "begin": 1458,
-                                "end": 1478,
-                                "name": "DUP2"
-                            },
-                            {
-                                "begin": 1458,
-                                "end": 1478,
-                                "name": "LT"
-                            },
-                            {
-                                "begin": 1454,
-                                "end": 1549,
-                                "name": "ISZERO"
-                            },
-                            {
-                                "begin": 1454,
-                                "end": 1549,
-                                "name": "PUSH [tag]",
-                                "value": "49"
-                            },
-                            {
-                                "begin": 1454,
-                                "end": 1549,
-                                "name": "JUMPI"
-                            },
-                            {
-                                "begin": 1498,
-                                "end": 1512,
-                                "name": "PUSH",
-                                "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
-                            },
-                            {
-                                "begin": 1498,
-                                "end": 1512,
-                                "name": "DUP1"
-                            },
-                            {
-                                "begin": 1498,
-                                "end": 1512,
-                                "name": "DUP7"
-                            },
-                            {
-                                "begin": 1498,
-                                "end": 1512,
-                                "name": "AND"
-                            },
-                            {
-                                "begin": 1498,
-                                "end": 1512,
-                                "name": "PUSH",
-                                "value": "0"
-                            },
-                            {
-                                "begin": 1498,
-                                "end": 1512,
-                                "name": "SWAP1"
-                            },
-                            {
-                                "begin": 1498,
-                                "end": 1512,
-                                "name": "DUP2"
-                            },
-                            {
-                                "begin": 1498,
-                                "end": 1512,
-                                "name": "MSTORE"
-                            },
-                            {
-                                "begin": 1498,
-                                "end": 1505,
-                                "name": "PUSH",
-                                "value": "1"
-                            },
-                            {
-                                "begin": 1498,
-                                "end": 1512,
-                                "name": "PUSH",
-                                "value": "20"
-                            },
-                            {
-                                "begin": 1498,
-                                "end": 1512,
-                                "name": "SWAP1"
-                            },
-                            {
-                                "begin": 1498,
-                                "end": 1512,
-                                "name": "DUP2"
-                            },
-                            {
-                                "begin": 1498,
-                                "end": 1512,
-                                "name": "MSTORE"
-                            },
-                            {
-                                "begin": 1498,
-                                "end": 1512,
-                                "name": "PUSH",
-                                "value": "40"
-                            },
-                            {
-                                "begin": 1498,
-                                "end": 1512,
-                                "name": "DUP1"
-                            },
-                            {
-                                "begin": 1498,
-                                "end": 1512,
-                                "name": "DUP4"
-                            },
-                            {
-                                "begin": 1498,
-                                "end": 1512,
-                                "name": "SHA3"
-                            },
-                            {
-                                "begin": 1513,
-                                "end": 1523,
-                                "name": "CALLER"
-                            },
-                            {
-                                "begin": 1498,
-                                "end": 1524,
-                                "name": "SWAP1"
-                            },
-                            {
-                                "begin": 1498,
-                                "end": 1524,
-                                "name": "SWAP5"
-                            },
-                            {
-                                "begin": 1498,
-                                "end": 1524,
-                                "name": "AND"
-                            },
-                            {
-                                "begin": 1498,
-                                "end": 1524,
-                                "name": "DUP4"
-                            },
-                            {
-                                "begin": 1498,
-                                "end": 1524,
-                                "name": "MSTORE"
-                            },
-                            {
-                                "begin": 1498,
-                                "end": 1524,
-                                "name": "SWAP3"
-                            },
-                            {
-                                "begin": 1498,
-                                "end": 1524,
-                                "name": "SWAP1"
-                            },
-                            {
-                                "begin": 1498,
-                                "end": 1524,
-                                "name": "MSTORE"
-                            },
-                            {
-                                "begin": 1498,
-                                "end": 1524,
-                                "name": "SHA3"
-                            },
-                            {
-                                "begin": 1498,
-                                "end": 1534,
-                                "name": "DUP1"
-                            },
-                            {
-                                "begin": 1498,
-                                "end": 1534,
-                                "name": "SLOAD"
-                            },
-                            {
-                                "begin": 1498,
-                                "end": 1534,
-                                "name": "DUP5"
-                            },
-                            {
-                                "begin": 1498,
-                                "end": 1534,
-                                "name": "SWAP1"
-                            },
-                            {
-                                "begin": 1498,
-                                "end": 1534,
-                                "name": "SUB"
-                            },
-                            {
-                                "begin": 1498,
-                                "end": 1534,
-                                "name": "SWAP1"
-                            },
-                            {
-                                "begin": 1498,
-                                "end": 1534,
-                                "name": "SSTORE"
-                            },
-                            {
-                                "begin": 1454,
-                                "end": 1549,
-                                "name": "tag",
-                                "value": "49"
-                            },
-                            {
-                                "begin": 1454,
-                                "end": 1549,
-                                "name": "JUMPDEST"
-                            },
-                            {
-                                "begin": 1578,
-                                "end": 1581,
-                                "name": "DUP4"
-                            },
-                            {
-                                "begin": 1562,
-                                "end": 1590,
-                                "name": "PUSH",
-                                "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
-                            },
-                            {
-                                "begin": 1562,
-                                "end": 1590,
-                                "name": "AND"
-                            },
-                            {
-                                "begin": 1571,
-                                "end": 1576,
-                                "name": "DUP6"
-                            },
-                            {
-                                "begin": 1562,
-                                "end": 1590,
-                                "name": "PUSH",
-                                "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
-                            },
-                            {
-                                "begin": 1562,
-                                "end": 1590,
-                                "name": "AND"
-                            },
-                            {
-                                "begin": 1562,
-                                "end": 1590,
-                                "name": "PUSH",
-                                "value": "DDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF"
-                            },
-                            {
-                                "begin": 1583,
-                                "end": 1589,
-                                "name": "DUP6"
-                            },
-                            {
-                                "begin": 1562,
-                                "end": 1590,
-                                "name": "PUSH",
-                                "value": "40"
-                            },
-                            {
-                                "begin": 1562,
-                                "end": 1590,
-                                "name": "MLOAD"
-                            },
-                            {
-                                "begin": 1562,
-                                "end": 1590,
-                                "name": "DUP1"
-                            },
-                            {
-                                "begin": 1562,
-                                "end": 1590,
-                                "name": "DUP3"
-                            },
-                            {
-                                "begin": 1562,
-                                "end": 1590,
-                                "name": "DUP2"
-                            },
-                            {
-                                "begin": 1562,
-                                "end": 1590,
-                                "name": "MSTORE"
-                            },
-                            {
-                                "begin": 1562,
-                                "end": 1590,
-                                "name": "PUSH",
-                                "value": "20"
-                            },
-                            {
-                                "begin": 1562,
-                                "end": 1590,
-                                "name": "ADD"
-                            },
-                            {
-                                "begin": 1562,
-                                "end": 1590,
-                                "name": "SWAP2"
-                            },
-                            {
-                                "begin": 1562,
-                                "end": 1590,
-                                "name": "POP"
-                            },
-                            {
-                                "begin": 1562,
-                                "end": 1590,
-                                "name": "POP"
-                            },
-                            {
-                                "begin": 1562,
-                                "end": 1590,
-                                "name": "PUSH",
-                                "value": "40"
-                            },
-                            {
-                                "begin": 1562,
-                                "end": 1590,
-                                "name": "MLOAD"
-                            },
-                            {
-                                "begin": 1562,
-                                "end": 1590,
-                                "name": "DUP1"
-                            },
-                            {
-                                "begin": 1562,
-                                "end": 1590,
-                                "name": "SWAP2"
-                            },
-                            {
-                                "begin": 1562,
-                                "end": 1590,
-                                "name": "SUB"
-                            },
-                            {
-                                "begin": 1562,
-                                "end": 1590,
-                                "name": "SWAP1"
-                            },
-                            {
-                                "begin": 1562,
-                                "end": 1590,
-                                "name": "LOG3"
-                            },
-                            {
-                                "begin": 1611,
-                                "end": 1615,
-                                "name": "PUSH",
-                                "value": "1"
-                            },
-                            {
-                                "begin": 1604,
-                                "end": 1615,
-                                "name": "SWAP2"
-                            },
-                            {
-                                "begin": 1604,
-                                "end": 1615,
-                                "name": "POP"
-                            },
-                            {
-                                "begin": 1604,
-                                "end": 1615,
-                                "name": "PUSH [tag]",
-                                "value": "50"
-                            },
-                            {
-                                "begin": 1604,
-                                "end": 1615,
-                                "name": "JUMP"
-                            },
-                            {
-                                "begin": 1234,
-                                "end": 1669,
-                                "name": "tag",
-                                "value": "48"
-                            },
-                            {
-                                "begin": 1234,
-                                "end": 1669,
-                                "name": "JUMPDEST"
-                            },
-                            {
-                                "begin": 1653,
-                                "end": 1658,
-                                "name": "PUSH",
-                                "value": "0"
-                            },
-                            {
-                                "begin": 1646,
-                                "end": 1658,
-                                "name": "SWAP2"
-                            },
-                            {
-                                "begin": 1646,
-                                "end": 1658,
-                                "name": "POP"
-                            },
-                            {
-                                "begin": 1234,
-                                "end": 1669,
-                                "name": "tag",
-                                "value": "50"
-                            },
-                            {
-                                "begin": 1234,
-                                "end": 1669,
-                                "name": "JUMPDEST"
-                            },
-                            {
-                                "begin": 1066,
-                                "end": 1675,
-                                "name": "tag",
-                                "value": "45"
-                            },
-                            {
-                                "begin": 1066,
-                                "end": 1675,
-                                "name": "JUMPDEST"
-                            },
-                            {
-                                "begin": 1066,
-                                "end": 1675,
-                                "name": "POP"
-                            },
-                            {
-                                "begin": 1066,
-                                "end": 1675,
-                                "name": "SWAP4"
-                            },
-                            {
-                                "begin": 1066,
-                                "end": 1675,
-                                "name": "SWAP3"
-                            },
-                            {
-                                "begin": 1066,
-                                "end": 1675,
-                                "name": "POP"
-                            },
-                            {
-                                "begin": 1066,
-                                "end": 1675,
-                                "name": "POP"
-                            },
-                            {
-                                "begin": 1066,
-                                "end": 1675,
-                                "name": "POP"
-                            },
-                            {
-                                "begin": 1066,
-                                "end": 1675,
-                                "name": "JUMP",
-                                "value": "[out]"
-                            },
-                            {
-                                "begin": 891,
-                                "end": 926,
-                                "name": "tag",
-                                "value": "28"
-                            },
-                            {
-                                "begin": 891,
-                                "end": 926,
-                                "name": "JUMPDEST"
-                            },
-                            {
-                                "begin": 924,
-                                "end": 926,
-                                "name": "PUSH",
-                                "value": "12"
-                            },
-                            {
-                                "begin": 891,
-                                "end": 926,
-                                "name": "DUP2"
-                            },
-                            {
-                                "begin": 891,
-                                "end": 926,
-                                "name": "JUMP",
-                                "value": "[out]"
-                            },
-                            {
-                                "begin": 982,
-                                "end": 1081,
-                                "name": "tag",
-                                "value": "31"
-                            },
-                            {
-                                "begin": 982,
-                                "end": 1081,
-                                "name": "JUMPDEST"
-                            },
-                            {
-                                "begin": 1058,
-                                "end": 1074,
-                                "name": "PUSH",
-                                "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
-                            },
-                            {
-                                "begin": 1058,
-                                "end": 1074,
-                                "name": "DUP2"
-                            },
-                            {
-                                "begin": 1058,
-                                "end": 1074,
-                                "name": "AND"
-                            },
-                            {
-                                "begin": 1035,
-                                "end": 1039,
-                                "name": "PUSH",
-                                "value": "0"
-                            },
-                            {
-                                "begin": 1058,
-                                "end": 1074,
-                                "name": "SWAP1"
-                            },
-                            {
-                                "begin": 1058,
-                                "end": 1074,
-                                "name": "DUP2"
-                            },
-                            {
-                                "begin": 1058,
-                                "end": 1074,
-                                "name": "MSTORE"
-                            },
-                            {
-                                "begin": 1058,
-                                "end": 1074,
-                                "name": "PUSH",
-                                "value": "20"
-                            },
-                            {
-                                "begin": 1058,
-                                "end": 1074,
-                                "name": "DUP2"
-                            },
-                            {
-                                "begin": 1058,
-                                "end": 1074,
-                                "name": "SWAP1"
-                            },
-                            {
-                                "begin": 1058,
-                                "end": 1074,
-                                "name": "MSTORE"
-                            },
-                            {
-                                "begin": 1058,
-                                "end": 1074,
-                                "name": "PUSH",
-                                "value": "40"
-                            },
-                            {
-                                "begin": 1058,
-                                "end": 1074,
-                                "name": "SWAP1"
-                            },
-                            {
-                                "begin": 1058,
-                                "end": 1074,
-                                "name": "SHA3"
-                            },
-                            {
-                                "begin": 1058,
-                                "end": 1074,
-                                "name": "SLOAD"
-                            },
-                            {
-                                "begin": 982,
-                                "end": 1081,
-                                "name": "tag",
-                                "value": "51"
-                            },
-                            {
-                                "begin": 982,
-                                "end": 1081,
-                                "name": "JUMPDEST"
-                            },
-                            {
-                                "begin": 982,
-                                "end": 1081,
-                                "name": "SWAP2"
-                            },
-                            {
-                                "begin": 982,
-                                "end": 1081,
-                                "name": "SWAP1"
-                            },
-                            {
-                                "begin": 982,
-                                "end": 1081,
-                                "name": "POP"
-                            },
-                            {
-                                "begin": 982,
-                                "end": 1081,
-                                "name": "JUMP",
-                                "value": "[out]"
-                            },
-                            {
-                                "begin": 1064,
-                                "end": 1101,
-                                "name": "tag",
-                                "value": "34"
-                            },
-                            {
-                                "begin": 1064,
-                                "end": 1101,
-                                "name": "JUMPDEST"
-                            },
-                            {
-                                "begin": 1064,
-                                "end": 1101,
-                                "name": "PUSH",
-                                "value": "40"
-                            },
-                            {
-                                "begin": 1064,
-                                "end": 1101,
-                                "name": "DUP1"
-                            },
-                            {
-                                "begin": 1064,
-                                "end": 1101,
-                                "name": "MLOAD"
-                            },
-                            {
-                                "begin": 1064,
-                                "end": 1101,
-                                "name": "DUP1"
-                            },
-                            {
-                                "begin": 1064,
-                                "end": 1101,
-                                "name": "DUP3"
-                            },
-                            {
-                                "begin": 1064,
-                                "end": 1101,
-                                "name": "ADD"
-                            },
-                            {
-                                "begin": 1064,
-                                "end": 1101,
-                                "name": "SWAP1"
-                            },
-                            {
-                                "begin": 1064,
-                                "end": 1101,
-                                "name": "SWAP2"
-                            },
-                            {
-                                "begin": 1064,
-                                "end": 1101,
-                                "name": "MSTORE"
-                            },
-                            {
-                                "begin": 1064,
-                                "end": 1101,
-                                "name": "PUSH",
-                                "value": "3"
-                            },
-                            {
-                                "begin": 1064,
-                                "end": 1101,
-                                "name": "DUP2"
-                            },
-                            {
-                                "begin": 1064,
-                                "end": 1101,
-                                "name": "MSTORE"
-                            },
-                            {
-                                "begin": 1064,
-                                "end": 1101,
-                                "name": "PUSH",
-                                "value": "5A52580000000000000000000000000000000000000000000000000000000000"
-                            },
-                            {
-                                "begin": 1064,
-                                "end": 1101,
-                                "name": "PUSH",
-                                "value": "20"
-                            },
-                            {
-                                "begin": 1064,
-                                "end": 1101,
-                                "name": "DUP3"
-                            },
-                            {
-                                "begin": 1064,
-                                "end": 1101,
-                                "name": "ADD"
-                            },
-                            {
-                                "begin": 1064,
-                                "end": 1101,
-                                "name": "MSTORE"
-                            },
-                            {
-                                "begin": 1064,
-                                "end": 1101,
-                                "name": "DUP2"
-                            },
-                            {
-                                "begin": 1064,
-                                "end": 1101,
-                                "name": "JUMP",
-                                "value": "[out]"
-                            },
-                            {
-                                "begin": 125,
-                                "end": 535,
-                                "name": "tag",
-                                "value": "40"
-                            },
-                            {
-                                "begin": 125,
-                                "end": 535,
-                                "name": "JUMPDEST"
-                            },
-                            {
-                                "begin": 267,
-                                "end": 287,
-                                "name": "PUSH",
-                                "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
-                            },
-                            {
-                                "begin": 276,
-                                "end": 286,
-                                "name": "CALLER"
-                            },
-                            {
-                                "begin": 267,
-                                "end": 287,
-                                "name": "AND"
-                            },
-                            {
-                                "begin": 178,
-                                "end": 182,
-                                "name": "PUSH",
-                                "value": "0"
-                            },
-                            {
-                                "begin": 267,
-                                "end": 287,
-                                "name": "SWAP1"
-                            },
-                            {
-                                "begin": 267,
-                                "end": 287,
-                                "name": "DUP2"
-                            },
-                            {
-                                "begin": 267,
-                                "end": 287,
-                                "name": "MSTORE"
-                            },
-                            {
-                                "begin": 267,
-                                "end": 287,
-                                "name": "PUSH",
-                                "value": "20"
-                            },
-                            {
-                                "begin": 267,
-                                "end": 287,
-                                "name": "DUP2"
-                            },
-                            {
-                                "begin": 267,
-                                "end": 287,
-                                "name": "SWAP1"
-                            },
-                            {
-                                "begin": 267,
-                                "end": 287,
-                                "name": "MSTORE"
-                            },
-                            {
-                                "begin": 267,
-                                "end": 287,
-                                "name": "PUSH",
-                                "value": "40"
-                            },
-                            {
-                                "begin": 267,
-                                "end": 287,
-                                "name": "DUP2"
-                            },
-                            {
-                                "begin": 267,
-                                "end": 287,
-                                "name": "SHA3"
-                            },
-                            {
-                                "begin": 267,
-                                "end": 287,
-                                "name": "SLOAD"
-                            },
-                            {
-                                "begin": 267,
-                                "end": 297,
-                                "name": "DUP3"
-                            },
-                            {
-                                "begin": 267,
-                                "end": 297,
-                                "name": "SWAP1"
-                            },
-                            {
-                                "begin": 267,
-                                "end": 297,
-                                "name": "LT"
-                            },
-                            {
-                                "begin": 267,
-                                "end": 297,
-                                "name": "DUP1"
-                            },
-                            {
-                                "begin": 267,
-                                "end": 297,
-                                "name": "ISZERO"
-                            },
-                            {
-                                "begin": 267,
-                                "end": 297,
-                                "name": "SWAP1"
-                            },
-                            {
-                                "begin": 267,
-                                "end": 340,
-                                "name": "PUSH [tag]",
-                                "value": "53"
-                            },
-                            {
-                                "begin": 267,
-                                "end": 340,
-                                "name": "JUMPI"
-                            },
-                            {
-                                "begin": -1,
-                                "end": -1,
-                                "name": "POP"
-                            },
-                            {
-                                "begin": 327,
-                                "end": 340,
-                                "name": "PUSH",
-                                "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
-                            },
-                            {
-                                "begin": 327,
-                                "end": 340,
-                                "name": "DUP4"
-                            },
-                            {
-                                "begin": 327,
-                                "end": 340,
-                                "name": "AND"
-                            },
-                            {
-                                "begin": 327,
-                                "end": 335,
-                                "name": "PUSH",
-                                "value": "0"
-                            },
-                            {
-                                "begin": 327,
-                                "end": 340,
-                                "name": "SWAP1"
-                            },
-                            {
-                                "begin": 327,
-                                "end": 340,
-                                "name": "DUP2"
-                            },
-                            {
-                                "begin": 327,
-                                "end": 340,
-                                "name": "MSTORE"
-                            },
-                            {
-                                "begin": 327,
-                                "end": 340,
-                                "name": "PUSH",
-                                "value": "20"
-                            },
-                            {
-                                "begin": 327,
-                                "end": 340,
-                                "name": "DUP2"
-                            },
-                            {
-                                "begin": 327,
-                                "end": 340,
-                                "name": "SWAP1"
-                            },
-                            {
-                                "begin": 327,
-                                "end": 340,
-                                "name": "MSTORE"
-                            },
-                            {
-                                "begin": 327,
-                                "end": 340,
-                                "name": "PUSH",
-                                "value": "40"
-                            },
-                            {
-                                "begin": 327,
-                                "end": 340,
-                                "name": "SWAP1"
-                            },
-                            {
-                                "begin": 327,
-                                "end": 340,
-                                "name": "SHA3"
-                            },
-                            {
-                                "begin": 327,
-                                "end": 340,
-                                "name": "SLOAD"
-                            },
-                            {
-                                "begin": 301,
-                                "end": 323,
-                                "name": "DUP3"
-                            },
-                            {
-                                "begin": 301,
-                                "end": 323,
-                                "name": "DUP2"
-                            },
-                            {
-                                "begin": 301,
-                                "end": 323,
-                                "name": "ADD"
-                            },
-                            {
-                                "begin": 301,
-                                "end": 340,
-                                "name": "LT"
-                            },
-                            {
-                                "begin": 301,
-                                "end": 340,
-                                "name": "ISZERO"
-                            },
-                            {
-                                "begin": 267,
-                                "end": 340,
-                                "name": "tag",
-                                "value": "53"
-                            },
-                            {
-                                "begin": 267,
-                                "end": 340,
-                                "name": "JUMPDEST"
-                            },
-                            {
-                                "begin": 263,
-                                "end": 529,
-                                "name": "ISZERO"
-                            },
-                            {
-                                "begin": 263,
-                                "end": 529,
-                                "name": "PUSH [tag]",
-                                "value": "54"
-                            },
-                            {
-                                "begin": 263,
-                                "end": 529,
-                                "name": "JUMPI"
-                            },
-                            {
-                                "begin": 356,
-                                "end": 376,
-                                "name": "PUSH",
-                                "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
-                            },
-                            {
-                                "begin": 365,
-                                "end": 375,
-                                "name": "CALLER"
-                            },
-                            {
-                                "begin": 356,
-                                "end": 376,
-                                "name": "DUP2"
-                            },
-                            {
-                                "begin": 356,
-                                "end": 376,
-                                "name": "AND"
-                            },
-                            {
-                                "begin": 356,
-                                "end": 364,
-                                "name": "PUSH",
-                                "value": "0"
-                            },
-                            {
-                                "begin": 356,
-                                "end": 376,
-                                "name": "DUP2"
-                            },
-                            {
-                                "begin": 356,
-                                "end": 376,
-                                "name": "DUP2"
-                            },
-                            {
-                                "begin": 356,
-                                "end": 376,
-                                "name": "MSTORE"
-                            },
-                            {
-                                "begin": 356,
-                                "end": 376,
-                                "name": "PUSH",
-                                "value": "20"
-                            },
-                            {
-                                "begin": 356,
-                                "end": 376,
-                                "name": "DUP2"
-                            },
-                            {
-                                "begin": 356,
-                                "end": 376,
-                                "name": "DUP2"
-                            },
-                            {
-                                "begin": 356,
-                                "end": 376,
-                                "name": "MSTORE"
-                            },
-                            {
-                                "begin": 356,
-                                "end": 376,
-                                "name": "PUSH",
-                                "value": "40"
-                            },
-                            {
-                                "begin": 356,
-                                "end": 376,
-                                "name": "DUP1"
-                            },
-                            {
-                                "begin": 356,
-                                "end": 376,
-                                "name": "DUP4"
-                            },
-                            {
-                                "begin": 356,
-                                "end": 376,
-                                "name": "SHA3"
-                            },
-                            {
-                                "begin": 356,
-                                "end": 386,
-                                "name": "DUP1"
-                            },
-                            {
-                                "begin": 356,
-                                "end": 386,
-                                "name": "SLOAD"
-                            },
-                            {
-                                "begin": 356,
-                                "end": 386,
-                                "name": "DUP9"
-                            },
-                            {
-                                "begin": 356,
-                                "end": 386,
-                                "name": "SWAP1"
-                            },
-                            {
-                                "begin": 356,
-                                "end": 386,
-                                "name": "SUB"
-                            },
-                            {
-                                "begin": 356,
-                                "end": 386,
-                                "name": "SWAP1"
-                            },
-                            {
-                                "begin": 356,
-                                "end": 386,
-                                "name": "SSTORE"
-                            },
-                            {
-                                "begin": 400,
-                                "end": 413,
-                                "name": "SWAP4"
-                            },
-                            {
-                                "begin": 400,
-                                "end": 413,
-                                "name": "DUP8"
-                            },
-                            {
-                                "begin": 400,
-                                "end": 413,
-                                "name": "AND"
-                            },
-                            {
-                                "begin": 400,
-                                "end": 413,
-                                "name": "DUP1"
-                            },
-                            {
-                                "begin": 400,
-                                "end": 413,
-                                "name": "DUP4"
-                            },
-                            {
-                                "begin": 400,
-                                "end": 413,
-                                "name": "MSTORE"
-                            },
-                            {
-                                "begin": 400,
-                                "end": 413,
-                                "name": "SWAP2"
-                            },
-                            {
-                                "begin": 400,
-                                "end": 413,
-                                "name": "DUP5"
-                            },
-                            {
-                                "begin": 400,
-                                "end": 413,
-                                "name": "SWAP1"
-                            },
-                            {
-                                "begin": 400,
-                                "end": 413,
-                                "name": "SHA3"
-                            },
-                            {
-                                "begin": 400,
-                                "end": 423,
-                                "name": "DUP1"
-                            },
-                            {
-                                "begin": 400,
-                                "end": 423,
-                                "name": "SLOAD"
-                            },
-                            {
-                                "begin": 400,
-                                "end": 423,
-                                "name": "DUP8"
-                            },
-                            {
-                                "begin": 400,
-                                "end": 423,
-                                "name": "ADD"
-                            },
-                            {
-                                "begin": 400,
-                                "end": 423,
-                                "name": "SWAP1"
-                            },
-                            {
-                                "begin": 400,
-                                "end": 423,
-                                "name": "SSTORE"
-                            },
-                            {
-                                "begin": 437,
-                                "end": 470,
-                                "name": "DUP4"
-                            },
-                            {
-                                "begin": 437,
-                                "end": 470,
-                                "name": "MLOAD"
-                            },
-                            {
-                                "begin": 437,
-                                "end": 470,
-                                "name": "DUP7"
-                            },
-                            {
-                                "begin": 437,
-                                "end": 470,
-                                "name": "DUP2"
-                            },
-                            {
-                                "begin": 437,
-                                "end": 470,
-                                "name": "MSTORE"
-                            },
-                            {
-                                "begin": 437,
-                                "end": 470,
-                                "name": "SWAP4"
-                            },
-                            {
-                                "begin": 437,
-                                "end": 470,
-                                "name": "MLOAD"
-                            },
-                            {
-                                "begin": 400,
-                                "end": 413,
-                                "name": "SWAP2"
-                            },
-                            {
-                                "begin": 400,
-                                "end": 413,
-                                "name": "SWAP4"
-                            },
-                            {
-                                "begin": 437,
-                                "end": 470,
-                                "name": "PUSH",
-                                "value": "DDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF"
-                            },
-                            {
-                                "begin": 437,
-                                "end": 470,
-                                "name": "SWAP3"
-                            },
-                            {
-                                "begin": 437,
-                                "end": 470,
-                                "name": "SWAP1"
-                            },
-                            {
-                                "begin": 437,
-                                "end": 470,
-                                "name": "DUP2"
-                            },
-                            {
-                                "begin": 437,
-                                "end": 470,
-                                "name": "SWAP1"
-                            },
-                            {
-                                "begin": 437,
-                                "end": 470,
-                                "name": "SUB"
-                            },
-                            {
-                                "begin": 437,
-                                "end": 470,
-                                "name": "SWAP1"
-                            },
-                            {
-                                "begin": 437,
-                                "end": 470,
-                                "name": "SWAP2"
-                            },
-                            {
-                                "begin": 437,
-                                "end": 470,
-                                "name": "ADD"
-                            },
-                            {
-                                "begin": 437,
-                                "end": 470,
-                                "name": "SWAP1"
-                            },
-                            {
-                                "begin": 437,
-                                "end": 470,
-                                "name": "LOG3"
-                            },
-                            {
-                                "begin": -1,
-                                "end": -1,
-                                "name": "POP"
-                            },
-                            {
-                                "begin": 491,
-                                "end": 495,
-                                "name": "PUSH",
-                                "value": "1"
-                            },
-                            {
-                                "begin": 484,
-                                "end": 495,
-                                "name": "PUSH [tag]",
-                                "value": "44"
-                            },
-                            {
-                                "begin": 484,
-                                "end": 495,
-                                "name": "JUMP"
-                            },
-                            {
-                                "begin": 263,
-                                "end": 529,
-                                "name": "tag",
-                                "value": "54"
-                            },
-                            {
-                                "begin": 263,
-                                "end": 529,
-                                "name": "JUMPDEST"
-                            },
-                            {
-                                "begin": -1,
-                                "end": -1,
-                                "name": "POP"
-                            },
-                            {
-                                "begin": 521,
-                                "end": 526,
-                                "name": "PUSH",
-                                "value": "0"
-                            },
-                            {
-                                "begin": 514,
-                                "end": 526,
-                                "name": "PUSH [tag]",
-                                "value": "44"
-                            },
-                            {
-                                "begin": 514,
-                                "end": 526,
-                                "name": "JUMP"
-                            },
-                            {
-                                "begin": 263,
-                                "end": 529,
-                                "name": "tag",
-                                "value": "55"
-                            },
-                            {
-                                "begin": 263,
-                                "end": 529,
-                                "name": "JUMPDEST"
-                            },
-                            {
-                                "begin": 125,
-                                "end": 535,
-                                "name": "tag",
-                                "value": "52"
-                            },
-                            {
-                                "begin": 125,
-                                "end": 535,
-                                "name": "JUMPDEST"
-                            },
-                            {
-                                "begin": 125,
-                                "end": 535,
-                                "name": "SWAP3"
-                            },
-                            {
-                                "begin": 125,
-                                "end": 535,
-                                "name": "SWAP2"
-                            },
-                            {
-                                "begin": 125,
-                                "end": 535,
-                                "name": "POP"
-                            },
-                            {
-                                "begin": 125,
-                                "end": 535,
-                                "name": "POP"
-                            },
-                            {
-                                "begin": 125,
-                                "end": 535,
-                                "name": "JUMP",
-                                "value": "[out]"
-                            },
-                            {
-                                "begin": 1280,
-                                "end": 1406,
-                                "name": "tag",
-                                "value": "43"
-                            },
-                            {
-                                "begin": 1280,
-                                "end": 1406,
-                                "name": "JUMPDEST"
-                            },
-                            {
-                                "begin": 1374,
-                                "end": 1389,
-                                "name": "PUSH",
-                                "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
-                            },
-                            {
-                                "begin": 1374,
-                                "end": 1389,
-                                "name": "DUP1"
-                            },
-                            {
-                                "begin": 1374,
-                                "end": 1389,
-                                "name": "DUP4"
-                            },
-                            {
-                                "begin": 1374,
-                                "end": 1389,
-                                "name": "AND"
-                            },
-                            {
-                                "begin": 1351,
-                                "end": 1355,
-                                "name": "PUSH",
-                                "value": "0"
-                            },
-                            {
-                                "begin": 1374,
-                                "end": 1389,
-                                "name": "SWAP1"
-                            },
-                            {
-                                "begin": 1374,
-                                "end": 1389,
-                                "name": "DUP2"
-                            },
-                            {
-                                "begin": 1374,
-                                "end": 1389,
-                                "name": "MSTORE"
-                            },
-                            {
-                                "begin": 1374,
-                                "end": 1381,
-                                "name": "PUSH",
-                                "value": "1"
-                            },
-                            {
-                                "begin": 1374,
-                                "end": 1389,
-                                "name": "PUSH",
-                                "value": "20"
-                            },
-                            {
-                                "begin": 1374,
-                                "end": 1389,
-                                "name": "SWAP1"
-                            },
-                            {
-                                "begin": 1374,
-                                "end": 1389,
-                                "name": "DUP2"
-                            },
-                            {
-                                "begin": 1374,
-                                "end": 1389,
-                                "name": "MSTORE"
-                            },
-                            {
-                                "begin": 1374,
-                                "end": 1389,
-                                "name": "PUSH",
-                                "value": "40"
-                            },
-                            {
-                                "begin": 1374,
-                                "end": 1389,
-                                "name": "DUP1"
-                            },
-                            {
-                                "begin": 1374,
-                                "end": 1389,
-                                "name": "DUP4"
-                            },
-                            {
-                                "begin": 1374,
-                                "end": 1389,
-                                "name": "SHA3"
-                            },
-                            {
-                                "begin": 1374,
-                                "end": 1399,
-                                "name": "SWAP4"
-                            },
-                            {
-                                "begin": 1374,
-                                "end": 1399,
-                                "name": "DUP6"
-                            },
-                            {
-                                "begin": 1374,
-                                "end": 1399,
-                                "name": "AND"
-                            },
-                            {
-                                "begin": 1374,
-                                "end": 1399,
-                                "name": "DUP4"
-                            },
-                            {
-                                "begin": 1374,
-                                "end": 1399,
-                                "name": "MSTORE"
-                            },
-                            {
-                                "begin": 1374,
-                                "end": 1399,
-                                "name": "SWAP3"
-                            },
-                            {
-                                "begin": 1374,
-                                "end": 1399,
-                                "name": "SWAP1"
-                            },
-                            {
-                                "begin": 1374,
-                                "end": 1399,
-                                "name": "MSTORE"
-                            },
-                            {
-                                "begin": 1374,
-                                "end": 1399,
-                                "name": "SHA3"
-                            },
-                            {
-                                "begin": 1374,
-                                "end": 1399,
-                                "name": "SLOAD"
-                            },
-                            {
-                                "begin": 1280,
-                                "end": 1406,
-                                "name": "tag",
-                                "value": "56"
-                            },
-                            {
-                                "begin": 1280,
-                                "end": 1406,
-                                "name": "JUMPDEST"
-                            },
-                            {
-                                "begin": 1280,
-                                "end": 1406,
-                                "name": "SWAP3"
-                            },
-                            {
-                                "begin": 1280,
-                                "end": 1406,
-                                "name": "SWAP2"
-                            },
-                            {
-                                "begin": 1280,
-                                "end": 1406,
-                                "name": "POP"
-                            },
-                            {
-                                "begin": 1280,
-                                "end": 1406,
-                                "name": "POP"
-                            },
-                            {
-                                "begin": 1280,
-                                "end": 1406,
-                                "name": "JUMP",
-                                "value": "[out]"
-                            }
-                        ]
-                    }
-                }
-            },
-            "methodIdentifiers": {
-                "allowance(address,address)": "dd62ed3e",
-                "approve(address,uint256)": "095ea7b3",
-                "balanceOf(address)": "70a08231",
-                "decimals()": "313ce567",
-                "name()": "06fdde03",
-                "symbol()": "95d89b41",
-                "totalSupply()": "18160ddd",
-                "transfer(address,uint256)": "a9059cbb",
-                "transferFrom(address,address,uint256)": "23b872dd"
-            }
-        },
-        "metadata":
-            "{\"compiler\":{\"version\":\"0.4.11+commit.68ef5810\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_spender\",\"type\":\"address\"},{\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_from\",\"type\":\"address\"},{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\"},{\"name\":\"_spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"type\":\"function\"},{\"inputs\":[],\"payable\":false,\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"_from\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"_to\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"_owner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"_spender\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"}],\"devdoc\":{\"methods\":{\"transferFrom(address,address,uint256)\":{\"details\":\"ERC20 transferFrom, modified such that an allowance of MAX_UINT represents an unlimited allowance.\",\"params\":{\"_from\":\"Address to transfer from.\",\"_to\":\"Address to transfer to.\",\"_value\":\"Amount to transfer.\"},\"return\":\"Success of transfer.\"}}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"2.0.0/tokens/ZRXToken/ZRXToken.sol\":\"ZRXToken\"},\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":1000000},\"remappings\":[]},\"sources\":{\"1.0.0/ERC20Token/ERC20Token_v1.sol\":{\"keccak256\":\"0x3d710b436c430d6fe49f64b091555405360d76da6454b93faa8e213eea34a96d\",\"urls\":[\"bzzr://d12710a563415ad98ff28ecb3aab0b68467b3d023e7c130c73ed9918ef86158e\"]},\"1.0.0/Token/Token_v1.sol\":{\"keccak256\":\"0x35a82bc7bc0994caa97f8ea44660b9b5e796acfe72705b5ff7ed8f2a3c47ff37\",\"urls\":[\"bzzr://a62ae857a4cf2e8948e36d02470c612ac1a5ac20ebe1c1b553ad1ed8becb634e\"]},\"1.0.0/UnlimitedAllowanceToken/UnlimitedAllowanceToken_v1.sol\":{\"keccak256\":\"0x2e1f4b899081cedd8940a9cd0f0f7413264c883312ed0ba9c53885766fe0a1a5\",\"urls\":[\"bzzr://47c42a58e56ffe81e49c8aabd3c391f5fa807fea299b3a2178501e3669baeb52\"]},\"2.0.0/tokens/ZRXToken/ZRXToken.sol\":{\"keccak256\":\"0x9eeb623d48909b083c77688b13b610811c53e37622b3fcbaa23c01873230f5d6\",\"urls\":[\"bzzr://84f3b5c2653068092771d443281018ff2ee0543817426d0fb6f9037a3570e37f\"]}},\"version\":1}",
-        "userdoc": {
-            "methods": {}
-        }
-    },
-    "sources": {
-        "1.0.0/ERC20Token/ERC20Token_v1.sol": {
-            "id": 0,
-            "legacyAST": {
-                "children": [
-                    {
-                        "attributes": {
-                            "literals": ["solidity", "^", "0.4", ".11"]
-                        },
-                        "id": 126,
-                        "name": "PragmaDirective",
-                        "src": "0:24:0"
-                    },
-                    {
-                        "attributes": {
-                            "file": "../Token/Token_v1.sol"
-                        },
-                        "id": 128,
-                        "name": "ImportDirective",
-                        "src": "26:58:0"
-                    },
-                    {
-                        "attributes": {
-                            "fullyImplemented": true,
-                            "isLibrary": false,
-                            "linearizedBaseContracts": [322, 397],
-                            "name": "ERC20Token_v1"
-                        },
-                        "children": [
-                            {
-                                "children": [
-                                    {
-                                        "attributes": {
-                                            "name": "Token"
-                                        },
-                                        "id": 129,
-                                        "name": "UserDefinedTypeName",
-                                        "src": "112:5:0"
-                                    }
-                                ],
-                                "id": 130,
-                                "name": "InheritanceSpecifier",
-                                "src": "112:5:0"
-                            },
-                            {
-                                "attributes": {
-                                    "constant": false,
-                                    "name": "transfer",
-                                    "payable": false,
-                                    "visibility": "public"
-                                },
-                                "children": [
-                                    {
-                                        "children": [
-                                            {
-                                                "attributes": {
-                                                    "constant": false,
-                                                    "name": "_to",
-                                                    "storageLocation": "default",
-                                                    "type": "address",
-                                                    "visibility": "internal"
-                                                },
-                                                "children": [
-                                                    {
-                                                        "attributes": {
-                                                            "name": "address"
-                                                        },
-                                                        "id": 131,
-                                                        "name": "ElementaryTypeName",
-                                                        "src": "143:7:0"
-                                                    }
-                                                ],
-                                                "id": 132,
-                                                "name": "VariableDeclaration",
-                                                "src": "143:11:0"
-                                            },
-                                            {
-                                                "attributes": {
-                                                    "constant": false,
-                                                    "name": "_value",
-                                                    "storageLocation": "default",
-                                                    "type": "uint256",
-                                                    "visibility": "internal"
-                                                },
-                                                "children": [
-                                                    {
-                                                        "attributes": {
-                                                            "name": "uint"
-                                                        },
-                                                        "id": 133,
-                                                        "name": "ElementaryTypeName",
-                                                        "src": "156:4:0"
-                                                    }
-                                                ],
-                                                "id": 134,
-                                                "name": "VariableDeclaration",
-                                                "src": "156:11:0"
-                                            }
-                                        ],
-                                        "id": 135,
-                                        "name": "ParameterList",
-                                        "src": "142:26:0"
-                                    },
-                                    {
-                                        "children": [
-                                            {
-                                                "attributes": {
-                                                    "constant": false,
-                                                    "name": "",
-                                                    "storageLocation": "default",
-                                                    "type": "bool",
-                                                    "visibility": "internal"
-                                                },
-                                                "children": [
-                                                    {
-                                                        "attributes": {
-                                                            "name": "bool"
-                                                        },
-                                                        "id": 136,
-                                                        "name": "ElementaryTypeName",
-                                                        "src": "178:4:0"
-                                                    }
-                                                ],
-                                                "id": 137,
-                                                "name": "VariableDeclaration",
-                                                "src": "178:4:0"
-                                            }
-                                        ],
-                                        "id": 138,
-                                        "name": "ParameterList",
-                                        "src": "177:6:0"
-                                    },
-                                    {
-                                        "children": [
-                                            {
-                                                "children": [
-                                                    {
-                                                        "attributes": {
-                                                            "operator": "&&",
-                                                            "type": "bool"
-                                                        },
-                                                        "children": [
-                                                            {
-                                                                "attributes": {
-                                                                    "operator": ">=",
-                                                                    "type": "bool"
-                                                                },
-                                                                "children": [
-                                                                    {
-                                                                        "attributes": {
-                                                                            "type": "uint256"
-                                                                        },
-                                                                        "children": [
-                                                                            {
-                                                                                "attributes": {
-                                                                                    "type":
-                                                                                        "mapping(address => uint256)",
-                                                                                    "value": "balances"
-                                                                                },
-                                                                                "id": 139,
-                                                                                "name": "Identifier",
-                                                                                "src": "267:8:0"
-                                                                            },
-                                                                            {
-                                                                                "attributes": {
-                                                                                    "member_name": "sender",
-                                                                                    "type": "address"
-                                                                                },
-                                                                                "children": [
-                                                                                    {
-                                                                                        "attributes": {
-                                                                                            "type": "msg",
-                                                                                            "value": "msg"
-                                                                                        },
-                                                                                        "id": 140,
-                                                                                        "name": "Identifier",
-                                                                                        "src": "276:3:0"
-                                                                                    }
-                                                                                ],
-                                                                                "id": 141,
-                                                                                "name": "MemberAccess",
-                                                                                "src": "276:10:0"
-                                                                            }
-                                                                        ],
-                                                                        "id": 142,
-                                                                        "name": "IndexAccess",
-                                                                        "src": "267:20:0"
-                                                                    },
-                                                                    {
-                                                                        "attributes": {
-                                                                            "type": "uint256",
-                                                                            "value": "_value"
-                                                                        },
-                                                                        "id": 143,
-                                                                        "name": "Identifier",
-                                                                        "src": "291:6:0"
-                                                                    }
-                                                                ],
-                                                                "id": 144,
-                                                                "name": "BinaryOperation",
-                                                                "src": "267:30:0"
-                                                            },
-                                                            {
-                                                                "attributes": {
-                                                                    "operator": ">=",
-                                                                    "type": "bool"
-                                                                },
-                                                                "children": [
-                                                                    {
-                                                                        "attributes": {
-                                                                            "operator": "+",
-                                                                            "type": "uint256"
-                                                                        },
-                                                                        "children": [
-                                                                            {
-                                                                                "attributes": {
-                                                                                    "type": "uint256"
-                                                                                },
-                                                                                "children": [
-                                                                                    {
-                                                                                        "attributes": {
-                                                                                            "type":
-                                                                                                "mapping(address => uint256)",
-                                                                                            "value": "balances"
-                                                                                        },
-                                                                                        "id": 145,
-                                                                                        "name": "Identifier",
-                                                                                        "src": "301:8:0"
-                                                                                    },
-                                                                                    {
-                                                                                        "attributes": {
-                                                                                            "type": "address",
-                                                                                            "value": "_to"
-                                                                                        },
-                                                                                        "id": 146,
-                                                                                        "name": "Identifier",
-                                                                                        "src": "310:3:0"
-                                                                                    }
-                                                                                ],
-                                                                                "id": 147,
-                                                                                "name": "IndexAccess",
-                                                                                "src": "301:13:0"
-                                                                            },
-                                                                            {
-                                                                                "attributes": {
-                                                                                    "type": "uint256",
-                                                                                    "value": "_value"
-                                                                                },
-                                                                                "id": 148,
-                                                                                "name": "Identifier",
-                                                                                "src": "317:6:0"
-                                                                            }
-                                                                        ],
-                                                                        "id": 149,
-                                                                        "name": "BinaryOperation",
-                                                                        "src": "301:22:0"
-                                                                    },
-                                                                    {
-                                                                        "attributes": {
-                                                                            "type": "uint256"
-                                                                        },
-                                                                        "children": [
-                                                                            {
-                                                                                "attributes": {
-                                                                                    "type":
-                                                                                        "mapping(address => uint256)",
-                                                                                    "value": "balances"
-                                                                                },
-                                                                                "id": 150,
-                                                                                "name": "Identifier",
-                                                                                "src": "327:8:0"
-                                                                            },
-                                                                            {
-                                                                                "attributes": {
-                                                                                    "type": "address",
-                                                                                    "value": "_to"
-                                                                                },
-                                                                                "id": 151,
-                                                                                "name": "Identifier",
-                                                                                "src": "336:3:0"
-                                                                            }
-                                                                        ],
-                                                                        "id": 152,
-                                                                        "name": "IndexAccess",
-                                                                        "src": "327:13:0"
-                                                                    }
-                                                                ],
-                                                                "id": 153,
-                                                                "name": "BinaryOperation",
-                                                                "src": "301:39:0"
-                                                            }
-                                                        ],
-                                                        "id": 154,
-                                                        "name": "BinaryOperation",
-                                                        "src": "267:73:0"
-                                                    },
-                                                    {
-                                                        "children": [
-                                                            {
-                                                                "children": [
-                                                                    {
-                                                                        "attributes": {
-                                                                            "operator": "-=",
-                                                                            "type": "uint256"
-                                                                        },
-                                                                        "children": [
-                                                                            {
-                                                                                "attributes": {
-                                                                                    "type": "uint256"
-                                                                                },
-                                                                                "children": [
-                                                                                    {
-                                                                                        "attributes": {
-                                                                                            "type":
-                                                                                                "mapping(address => uint256)",
-                                                                                            "value": "balances"
-                                                                                        },
-                                                                                        "id": 155,
-                                                                                        "name": "Identifier",
-                                                                                        "src": "356:8:0"
-                                                                                    },
-                                                                                    {
-                                                                                        "attributes": {
-                                                                                            "member_name": "sender",
-                                                                                            "type": "address"
-                                                                                        },
-                                                                                        "children": [
-                                                                                            {
-                                                                                                "attributes": {
-                                                                                                    "type": "msg",
-                                                                                                    "value": "msg"
-                                                                                                },
-                                                                                                "id": 156,
-                                                                                                "name": "Identifier",
-                                                                                                "src": "365:3:0"
-                                                                                            }
-                                                                                        ],
-                                                                                        "id": 157,
-                                                                                        "name": "MemberAccess",
-                                                                                        "src": "365:10:0"
-                                                                                    }
-                                                                                ],
-                                                                                "id": 158,
-                                                                                "name": "IndexAccess",
-                                                                                "src": "356:20:0"
-                                                                            },
-                                                                            {
-                                                                                "attributes": {
-                                                                                    "type": "uint256",
-                                                                                    "value": "_value"
-                                                                                },
-                                                                                "id": 159,
-                                                                                "name": "Identifier",
-                                                                                "src": "380:6:0"
-                                                                            }
-                                                                        ],
-                                                                        "id": 160,
-                                                                        "name": "Assignment",
-                                                                        "src": "356:30:0"
-                                                                    }
-                                                                ],
-                                                                "id": 161,
-                                                                "name": "ExpressionStatement",
-                                                                "src": "356:30:0"
-                                                            },
-                                                            {
-                                                                "children": [
-                                                                    {
-                                                                        "attributes": {
-                                                                            "operator": "+=",
-                                                                            "type": "uint256"
-                                                                        },
-                                                                        "children": [
-                                                                            {
-                                                                                "attributes": {
-                                                                                    "type": "uint256"
-                                                                                },
-                                                                                "children": [
-                                                                                    {
-                                                                                        "attributes": {
-                                                                                            "type":
-                                                                                                "mapping(address => uint256)",
-                                                                                            "value": "balances"
-                                                                                        },
-                                                                                        "id": 162,
-                                                                                        "name": "Identifier",
-                                                                                        "src": "400:8:0"
-                                                                                    },
-                                                                                    {
-                                                                                        "attributes": {
-                                                                                            "type": "address",
-                                                                                            "value": "_to"
-                                                                                        },
-                                                                                        "id": 163,
-                                                                                        "name": "Identifier",
-                                                                                        "src": "409:3:0"
-                                                                                    }
-                                                                                ],
-                                                                                "id": 164,
-                                                                                "name": "IndexAccess",
-                                                                                "src": "400:13:0"
-                                                                            },
-                                                                            {
-                                                                                "attributes": {
-                                                                                    "type": "uint256",
-                                                                                    "value": "_value"
-                                                                                },
-                                                                                "id": 165,
-                                                                                "name": "Identifier",
-                                                                                "src": "417:6:0"
-                                                                            }
-                                                                        ],
-                                                                        "id": 166,
-                                                                        "name": "Assignment",
-                                                                        "src": "400:23:0"
-                                                                    }
-                                                                ],
-                                                                "id": 167,
-                                                                "name": "ExpressionStatement",
-                                                                "src": "400:23:0"
-                                                            },
-                                                            {
-                                                                "children": [
-                                                                    {
-                                                                        "attributes": {
-                                                                            "type": "tuple()",
-                                                                            "type_conversion": false
-                                                                        },
-                                                                        "children": [
-                                                                            {
-                                                                                "attributes": {
-                                                                                    "type":
-                                                                                        "function (address,address,uint256) constant",
-                                                                                    "value": "Transfer"
-                                                                                },
-                                                                                "id": 168,
-                                                                                "name": "Identifier",
-                                                                                "src": "437:8:0"
-                                                                            },
-                                                                            {
-                                                                                "attributes": {
-                                                                                    "member_name": "sender",
-                                                                                    "type": "address"
-                                                                                },
-                                                                                "children": [
-                                                                                    {
-                                                                                        "attributes": {
-                                                                                            "type": "msg",
-                                                                                            "value": "msg"
-                                                                                        },
-                                                                                        "id": 169,
-                                                                                        "name": "Identifier",
-                                                                                        "src": "446:3:0"
-                                                                                    }
-                                                                                ],
-                                                                                "id": 170,
-                                                                                "name": "MemberAccess",
-                                                                                "src": "446:10:0"
-                                                                            },
-                                                                            {
-                                                                                "attributes": {
-                                                                                    "type": "address",
-                                                                                    "value": "_to"
-                                                                                },
-                                                                                "id": 171,
-                                                                                "name": "Identifier",
-                                                                                "src": "458:3:0"
-                                                                            },
-                                                                            {
-                                                                                "attributes": {
-                                                                                    "type": "uint256",
-                                                                                    "value": "_value"
-                                                                                },
-                                                                                "id": 172,
-                                                                                "name": "Identifier",
-                                                                                "src": "463:6:0"
-                                                                            }
-                                                                        ],
-                                                                        "id": 173,
-                                                                        "name": "FunctionCall",
-                                                                        "src": "437:33:0"
-                                                                    }
-                                                                ],
-                                                                "id": 174,
-                                                                "name": "ExpressionStatement",
-                                                                "src": "437:33:0"
-                                                            },
-                                                            {
-                                                                "children": [
-                                                                    {
-                                                                        "attributes": {
-                                                                            "hexvalue": "74727565",
-                                                                            "subdenomination": null,
-                                                                            "token": "true",
-                                                                            "type": "bool",
-                                                                            "value": "true"
-                                                                        },
-                                                                        "id": 175,
-                                                                        "name": "Literal",
-                                                                        "src": "491:4:0"
-                                                                    }
-                                                                ],
-                                                                "id": 176,
-                                                                "name": "Return",
-                                                                "src": "484:11:0"
-                                                            }
-                                                        ],
-                                                        "id": 177,
-                                                        "name": "Block",
-                                                        "src": "342:164:0"
-                                                    },
-                                                    {
-                                                        "children": [
-                                                            {
-                                                                "children": [
-                                                                    {
-                                                                        "attributes": {
-                                                                            "hexvalue": "66616c7365",
-                                                                            "subdenomination": null,
-                                                                            "token": "false",
-                                                                            "type": "bool",
-                                                                            "value": "false"
-                                                                        },
-                                                                        "id": 178,
-                                                                        "name": "Literal",
-                                                                        "src": "521:5:0"
-                                                                    }
-                                                                ],
-                                                                "id": 179,
-                                                                "name": "Return",
-                                                                "src": "514:12:0"
-                                                            }
-                                                        ],
-                                                        "id": 180,
-                                                        "name": "Block",
-                                                        "src": "512:17:0"
-                                                    }
-                                                ],
-                                                "id": 181,
-                                                "name": "IfStatement",
-                                                "src": "263:266:0"
-                                            }
-                                        ],
-                                        "id": 182,
-                                        "name": "Block",
-                                        "src": "184:351:0"
-                                    }
-                                ],
-                                "id": 183,
-                                "name": "FunctionDefinition",
-                                "src": "125:410:0"
-                            },
-                            {
-                                "attributes": {
-                                    "constant": false,
-                                    "name": "transferFrom",
-                                    "payable": false,
-                                    "visibility": "public"
-                                },
-                                "children": [
-                                    {
-                                        "children": [
-                                            {
-                                                "attributes": {
-                                                    "constant": false,
-                                                    "name": "_from",
-                                                    "storageLocation": "default",
-                                                    "type": "address",
-                                                    "visibility": "internal"
-                                                },
-                                                "children": [
-                                                    {
-                                                        "attributes": {
-                                                            "name": "address"
-                                                        },
-                                                        "id": 184,
-                                                        "name": "ElementaryTypeName",
-                                                        "src": "563:7:0"
-                                                    }
-                                                ],
-                                                "id": 185,
-                                                "name": "VariableDeclaration",
-                                                "src": "563:13:0"
-                                            },
-                                            {
-                                                "attributes": {
-                                                    "constant": false,
-                                                    "name": "_to",
-                                                    "storageLocation": "default",
-                                                    "type": "address",
-                                                    "visibility": "internal"
-                                                },
-                                                "children": [
-                                                    {
-                                                        "attributes": {
-                                                            "name": "address"
-                                                        },
-                                                        "id": 186,
-                                                        "name": "ElementaryTypeName",
-                                                        "src": "578:7:0"
-                                                    }
-                                                ],
-                                                "id": 187,
-                                                "name": "VariableDeclaration",
-                                                "src": "578:11:0"
-                                            },
-                                            {
-                                                "attributes": {
-                                                    "constant": false,
-                                                    "name": "_value",
-                                                    "storageLocation": "default",
-                                                    "type": "uint256",
-                                                    "visibility": "internal"
-                                                },
-                                                "children": [
-                                                    {
-                                                        "attributes": {
-                                                            "name": "uint"
-                                                        },
-                                                        "id": 188,
-                                                        "name": "ElementaryTypeName",
-                                                        "src": "591:4:0"
-                                                    }
-                                                ],
-                                                "id": 189,
-                                                "name": "VariableDeclaration",
-                                                "src": "591:11:0"
-                                            }
-                                        ],
-                                        "id": 190,
-                                        "name": "ParameterList",
-                                        "src": "562:41:0"
-                                    },
-                                    {
-                                        "children": [
-                                            {
-                                                "attributes": {
-                                                    "constant": false,
-                                                    "name": "",
-                                                    "storageLocation": "default",
-                                                    "type": "bool",
-                                                    "visibility": "internal"
-                                                },
-                                                "children": [
-                                                    {
-                                                        "attributes": {
-                                                            "name": "bool"
-                                                        },
-                                                        "id": 191,
-                                                        "name": "ElementaryTypeName",
-                                                        "src": "613:4:0"
-                                                    }
-                                                ],
-                                                "id": 192,
-                                                "name": "VariableDeclaration",
-                                                "src": "613:4:0"
-                                            }
-                                        ],
-                                        "id": 193,
-                                        "name": "ParameterList",
-                                        "src": "612:6:0"
-                                    },
-                                    {
-                                        "children": [
-                                            {
-                                                "children": [
-                                                    {
-                                                        "attributes": {
-                                                            "operator": "&&",
-                                                            "type": "bool"
-                                                        },
-                                                        "children": [
-                                                            {
-                                                                "attributes": {
-                                                                    "operator": "&&",
-                                                                    "type": "bool"
-                                                                },
-                                                                "children": [
-                                                                    {
-                                                                        "attributes": {
-                                                                            "operator": ">=",
-                                                                            "type": "bool"
-                                                                        },
-                                                                        "children": [
-                                                                            {
-                                                                                "attributes": {
-                                                                                    "type": "uint256"
-                                                                                },
-                                                                                "children": [
-                                                                                    {
-                                                                                        "attributes": {
-                                                                                            "type":
-                                                                                                "mapping(address => uint256)",
-                                                                                            "value": "balances"
-                                                                                        },
-                                                                                        "id": 194,
-                                                                                        "name": "Identifier",
-                                                                                        "src": "633:8:0"
-                                                                                    },
-                                                                                    {
-                                                                                        "attributes": {
-                                                                                            "type": "address",
-                                                                                            "value": "_from"
-                                                                                        },
-                                                                                        "id": 195,
-                                                                                        "name": "Identifier",
-                                                                                        "src": "642:5:0"
-                                                                                    }
-                                                                                ],
-                                                                                "id": 196,
-                                                                                "name": "IndexAccess",
-                                                                                "src": "633:15:0"
-                                                                            },
-                                                                            {
-                                                                                "attributes": {
-                                                                                    "type": "uint256",
-                                                                                    "value": "_value"
-                                                                                },
-                                                                                "id": 197,
-                                                                                "name": "Identifier",
-                                                                                "src": "652:6:0"
-                                                                            }
-                                                                        ],
-                                                                        "id": 198,
-                                                                        "name": "BinaryOperation",
-                                                                        "src": "633:25:0"
-                                                                    },
-                                                                    {
-                                                                        "attributes": {
-                                                                            "operator": ">=",
-                                                                            "type": "bool"
-                                                                        },
-                                                                        "children": [
-                                                                            {
-                                                                                "attributes": {
-                                                                                    "type": "uint256"
-                                                                                },
-                                                                                "children": [
-                                                                                    {
-                                                                                        "attributes": {
-                                                                                            "type":
-                                                                                                "mapping(address => uint256)"
-                                                                                        },
-                                                                                        "children": [
-                                                                                            {
-                                                                                                "attributes": {
-                                                                                                    "type":
-                                                                                                        "mapping(address => mapping(address => uint256))",
-                                                                                                    "value": "allowed"
-                                                                                                },
-                                                                                                "id": 199,
-                                                                                                "name": "Identifier",
-                                                                                                "src": "662:7:0"
-                                                                                            },
-                                                                                            {
-                                                                                                "attributes": {
-                                                                                                    "type": "address",
-                                                                                                    "value": "_from"
-                                                                                                },
-                                                                                                "id": 200,
-                                                                                                "name": "Identifier",
-                                                                                                "src": "670:5:0"
-                                                                                            }
-                                                                                        ],
-                                                                                        "id": 201,
-                                                                                        "name": "IndexAccess",
-                                                                                        "src": "662:14:0"
-                                                                                    },
-                                                                                    {
-                                                                                        "attributes": {
-                                                                                            "member_name": "sender",
-                                                                                            "type": "address"
-                                                                                        },
-                                                                                        "children": [
-                                                                                            {
-                                                                                                "attributes": {
-                                                                                                    "type": "msg",
-                                                                                                    "value": "msg"
-                                                                                                },
-                                                                                                "id": 202,
-                                                                                                "name": "Identifier",
-                                                                                                "src": "677:3:0"
-                                                                                            }
-                                                                                        ],
-                                                                                        "id": 203,
-                                                                                        "name": "MemberAccess",
-                                                                                        "src": "677:10:0"
-                                                                                    }
-                                                                                ],
-                                                                                "id": 204,
-                                                                                "name": "IndexAccess",
-                                                                                "src": "662:26:0"
-                                                                            },
-                                                                            {
-                                                                                "attributes": {
-                                                                                    "type": "uint256",
-                                                                                    "value": "_value"
-                                                                                },
-                                                                                "id": 205,
-                                                                                "name": "Identifier",
-                                                                                "src": "692:6:0"
-                                                                            }
-                                                                        ],
-                                                                        "id": 206,
-                                                                        "name": "BinaryOperation",
-                                                                        "src": "662:36:0"
-                                                                    }
-                                                                ],
-                                                                "id": 207,
-                                                                "name": "BinaryOperation",
-                                                                "src": "633:65:0"
-                                                            },
-                                                            {
-                                                                "attributes": {
-                                                                    "operator": ">=",
-                                                                    "type": "bool"
-                                                                },
-                                                                "children": [
-                                                                    {
-                                                                        "attributes": {
-                                                                            "operator": "+",
-                                                                            "type": "uint256"
-                                                                        },
-                                                                        "children": [
-                                                                            {
-                                                                                "attributes": {
-                                                                                    "type": "uint256"
-                                                                                },
-                                                                                "children": [
-                                                                                    {
-                                                                                        "attributes": {
-                                                                                            "type":
-                                                                                                "mapping(address => uint256)",
-                                                                                            "value": "balances"
-                                                                                        },
-                                                                                        "id": 208,
-                                                                                        "name": "Identifier",
-                                                                                        "src": "702:8:0"
-                                                                                    },
-                                                                                    {
-                                                                                        "attributes": {
-                                                                                            "type": "address",
-                                                                                            "value": "_to"
-                                                                                        },
-                                                                                        "id": 209,
-                                                                                        "name": "Identifier",
-                                                                                        "src": "711:3:0"
-                                                                                    }
-                                                                                ],
-                                                                                "id": 210,
-                                                                                "name": "IndexAccess",
-                                                                                "src": "702:13:0"
-                                                                            },
-                                                                            {
-                                                                                "attributes": {
-                                                                                    "type": "uint256",
-                                                                                    "value": "_value"
-                                                                                },
-                                                                                "id": 211,
-                                                                                "name": "Identifier",
-                                                                                "src": "718:6:0"
-                                                                            }
-                                                                        ],
-                                                                        "id": 212,
-                                                                        "name": "BinaryOperation",
-                                                                        "src": "702:22:0"
-                                                                    },
-                                                                    {
-                                                                        "attributes": {
-                                                                            "type": "uint256"
-                                                                        },
-                                                                        "children": [
-                                                                            {
-                                                                                "attributes": {
-                                                                                    "type":
-                                                                                        "mapping(address => uint256)",
-                                                                                    "value": "balances"
-                                                                                },
-                                                                                "id": 213,
-                                                                                "name": "Identifier",
-                                                                                "src": "728:8:0"
-                                                                            },
-                                                                            {
-                                                                                "attributes": {
-                                                                                    "type": "address",
-                                                                                    "value": "_to"
-                                                                                },
-                                                                                "id": 214,
-                                                                                "name": "Identifier",
-                                                                                "src": "737:3:0"
-                                                                            }
-                                                                        ],
-                                                                        "id": 215,
-                                                                        "name": "IndexAccess",
-                                                                        "src": "728:13:0"
-                                                                    }
-                                                                ],
-                                                                "id": 216,
-                                                                "name": "BinaryOperation",
-                                                                "src": "702:39:0"
-                                                            }
-                                                        ],
-                                                        "id": 217,
-                                                        "name": "BinaryOperation",
-                                                        "src": "633:108:0"
-                                                    },
-                                                    {
-                                                        "children": [
-                                                            {
-                                                                "children": [
-                                                                    {
-                                                                        "attributes": {
-                                                                            "operator": "+=",
-                                                                            "type": "uint256"
-                                                                        },
-                                                                        "children": [
-                                                                            {
-                                                                                "attributes": {
-                                                                                    "type": "uint256"
-                                                                                },
-                                                                                "children": [
-                                                                                    {
-                                                                                        "attributes": {
-                                                                                            "type":
-                                                                                                "mapping(address => uint256)",
-                                                                                            "value": "balances"
-                                                                                        },
-                                                                                        "id": 218,
-                                                                                        "name": "Identifier",
-                                                                                        "src": "757:8:0"
-                                                                                    },
-                                                                                    {
-                                                                                        "attributes": {
-                                                                                            "type": "address",
-                                                                                            "value": "_to"
-                                                                                        },
-                                                                                        "id": 219,
-                                                                                        "name": "Identifier",
-                                                                                        "src": "766:3:0"
-                                                                                    }
-                                                                                ],
-                                                                                "id": 220,
-                                                                                "name": "IndexAccess",
-                                                                                "src": "757:13:0"
-                                                                            },
-                                                                            {
-                                                                                "attributes": {
-                                                                                    "type": "uint256",
-                                                                                    "value": "_value"
-                                                                                },
-                                                                                "id": 221,
-                                                                                "name": "Identifier",
-                                                                                "src": "774:6:0"
-                                                                            }
-                                                                        ],
-                                                                        "id": 222,
-                                                                        "name": "Assignment",
-                                                                        "src": "757:23:0"
-                                                                    }
-                                                                ],
-                                                                "id": 223,
-                                                                "name": "ExpressionStatement",
-                                                                "src": "757:23:0"
-                                                            },
-                                                            {
-                                                                "children": [
-                                                                    {
-                                                                        "attributes": {
-                                                                            "operator": "-=",
-                                                                            "type": "uint256"
-                                                                        },
-                                                                        "children": [
-                                                                            {
-                                                                                "attributes": {
-                                                                                    "type": "uint256"
-                                                                                },
-                                                                                "children": [
-                                                                                    {
-                                                                                        "attributes": {
-                                                                                            "type":
-                                                                                                "mapping(address => uint256)",
-                                                                                            "value": "balances"
-                                                                                        },
-                                                                                        "id": 224,
-                                                                                        "name": "Identifier",
-                                                                                        "src": "794:8:0"
-                                                                                    },
-                                                                                    {
-                                                                                        "attributes": {
-                                                                                            "type": "address",
-                                                                                            "value": "_from"
-                                                                                        },
-                                                                                        "id": 225,
-                                                                                        "name": "Identifier",
-                                                                                        "src": "803:5:0"
-                                                                                    }
-                                                                                ],
-                                                                                "id": 226,
-                                                                                "name": "IndexAccess",
-                                                                                "src": "794:15:0"
-                                                                            },
-                                                                            {
-                                                                                "attributes": {
-                                                                                    "type": "uint256",
-                                                                                    "value": "_value"
-                                                                                },
-                                                                                "id": 227,
-                                                                                "name": "Identifier",
-                                                                                "src": "813:6:0"
-                                                                            }
-                                                                        ],
-                                                                        "id": 228,
-                                                                        "name": "Assignment",
-                                                                        "src": "794:25:0"
-                                                                    }
-                                                                ],
-                                                                "id": 229,
-                                                                "name": "ExpressionStatement",
-                                                                "src": "794:25:0"
-                                                            },
-                                                            {
-                                                                "children": [
-                                                                    {
-                                                                        "attributes": {
-                                                                            "operator": "-=",
-                                                                            "type": "uint256"
-                                                                        },
-                                                                        "children": [
-                                                                            {
-                                                                                "attributes": {
-                                                                                    "type": "uint256"
-                                                                                },
-                                                                                "children": [
-                                                                                    {
-                                                                                        "attributes": {
-                                                                                            "type":
-                                                                                                "mapping(address => uint256)"
-                                                                                        },
-                                                                                        "children": [
-                                                                                            {
-                                                                                                "attributes": {
-                                                                                                    "type":
-                                                                                                        "mapping(address => mapping(address => uint256))",
-                                                                                                    "value": "allowed"
-                                                                                                },
-                                                                                                "id": 230,
-                                                                                                "name": "Identifier",
-                                                                                                "src": "833:7:0"
-                                                                                            },
-                                                                                            {
-                                                                                                "attributes": {
-                                                                                                    "type": "address",
-                                                                                                    "value": "_from"
-                                                                                                },
-                                                                                                "id": 231,
-                                                                                                "name": "Identifier",
-                                                                                                "src": "841:5:0"
-                                                                                            }
-                                                                                        ],
-                                                                                        "id": 234,
-                                                                                        "name": "IndexAccess",
-                                                                                        "src": "833:14:0"
-                                                                                    },
-                                                                                    {
-                                                                                        "attributes": {
-                                                                                            "member_name": "sender",
-                                                                                            "type": "address"
-                                                                                        },
-                                                                                        "children": [
-                                                                                            {
-                                                                                                "attributes": {
-                                                                                                    "type": "msg",
-                                                                                                    "value": "msg"
-                                                                                                },
-                                                                                                "id": 232,
-                                                                                                "name": "Identifier",
-                                                                                                "src": "848:3:0"
-                                                                                            }
-                                                                                        ],
-                                                                                        "id": 233,
-                                                                                        "name": "MemberAccess",
-                                                                                        "src": "848:10:0"
-                                                                                    }
-                                                                                ],
-                                                                                "id": 235,
-                                                                                "name": "IndexAccess",
-                                                                                "src": "833:26:0"
-                                                                            },
-                                                                            {
-                                                                                "attributes": {
-                                                                                    "type": "uint256",
-                                                                                    "value": "_value"
-                                                                                },
-                                                                                "id": 236,
-                                                                                "name": "Identifier",
-                                                                                "src": "863:6:0"
-                                                                            }
-                                                                        ],
-                                                                        "id": 237,
-                                                                        "name": "Assignment",
-                                                                        "src": "833:36:0"
-                                                                    }
-                                                                ],
-                                                                "id": 238,
-                                                                "name": "ExpressionStatement",
-                                                                "src": "833:36:0"
-                                                            },
-                                                            {
-                                                                "children": [
-                                                                    {
-                                                                        "attributes": {
-                                                                            "type": "tuple()",
-                                                                            "type_conversion": false
-                                                                        },
-                                                                        "children": [
-                                                                            {
-                                                                                "attributes": {
-                                                                                    "type":
-                                                                                        "function (address,address,uint256) constant",
-                                                                                    "value": "Transfer"
-                                                                                },
-                                                                                "id": 239,
-                                                                                "name": "Identifier",
-                                                                                "src": "883:8:0"
-                                                                            },
-                                                                            {
-                                                                                "attributes": {
-                                                                                    "type": "address",
-                                                                                    "value": "_from"
-                                                                                },
-                                                                                "id": 240,
-                                                                                "name": "Identifier",
-                                                                                "src": "892:5:0"
-                                                                            },
-                                                                            {
-                                                                                "attributes": {
-                                                                                    "type": "address",
-                                                                                    "value": "_to"
-                                                                                },
-                                                                                "id": 241,
-                                                                                "name": "Identifier",
-                                                                                "src": "899:3:0"
-                                                                            },
-                                                                            {
-                                                                                "attributes": {
-                                                                                    "type": "uint256",
-                                                                                    "value": "_value"
-                                                                                },
-                                                                                "id": 242,
-                                                                                "name": "Identifier",
-                                                                                "src": "904:6:0"
-                                                                            }
-                                                                        ],
-                                                                        "id": 243,
-                                                                        "name": "FunctionCall",
-                                                                        "src": "883:28:0"
-                                                                    }
-                                                                ],
-                                                                "id": 244,
-                                                                "name": "ExpressionStatement",
-                                                                "src": "883:28:0"
-                                                            },
-                                                            {
-                                                                "children": [
-                                                                    {
-                                                                        "attributes": {
-                                                                            "hexvalue": "74727565",
-                                                                            "subdenomination": null,
-                                                                            "token": "true",
-                                                                            "type": "bool",
-                                                                            "value": "true"
-                                                                        },
-                                                                        "id": 245,
-                                                                        "name": "Literal",
-                                                                        "src": "932:4:0"
-                                                                    }
-                                                                ],
-                                                                "id": 246,
-                                                                "name": "Return",
-                                                                "src": "925:11:0"
-                                                            }
-                                                        ],
-                                                        "id": 247,
-                                                        "name": "Block",
-                                                        "src": "743:204:0"
-                                                    },
-                                                    {
-                                                        "children": [
-                                                            {
-                                                                "children": [
-                                                                    {
-                                                                        "attributes": {
-                                                                            "hexvalue": "66616c7365",
-                                                                            "subdenomination": null,
-                                                                            "token": "false",
-                                                                            "type": "bool",
-                                                                            "value": "false"
-                                                                        },
-                                                                        "id": 248,
-                                                                        "name": "Literal",
-                                                                        "src": "962:5:0"
-                                                                    }
-                                                                ],
-                                                                "id": 249,
-                                                                "name": "Return",
-                                                                "src": "955:12:0"
-                                                            }
-                                                        ],
-                                                        "id": 250,
-                                                        "name": "Block",
-                                                        "src": "953:17:0"
-                                                    }
-                                                ],
-                                                "id": 251,
-                                                "name": "IfStatement",
-                                                "src": "629:341:0"
-                                            }
-                                        ],
-                                        "id": 252,
-                                        "name": "Block",
-                                        "src": "619:357:0"
-                                    }
-                                ],
-                                "id": 253,
-                                "name": "FunctionDefinition",
-                                "src": "541:435:0"
-                            },
-                            {
-                                "attributes": {
-                                    "constant": true,
-                                    "name": "balanceOf",
-                                    "payable": false,
-                                    "visibility": "public"
-                                },
-                                "children": [
-                                    {
-                                        "children": [
-                                            {
-                                                "attributes": {
-                                                    "constant": false,
-                                                    "name": "_owner",
-                                                    "storageLocation": "default",
-                                                    "type": "address",
-                                                    "visibility": "internal"
-                                                },
-                                                "children": [
-                                                    {
-                                                        "attributes": {
-                                                            "name": "address"
-                                                        },
-                                                        "id": 254,
-                                                        "name": "ElementaryTypeName",
-                                                        "src": "1001:7:0"
-                                                    }
-                                                ],
-                                                "id": 255,
-                                                "name": "VariableDeclaration",
-                                                "src": "1001:14:0"
-                                            }
-                                        ],
-                                        "id": 256,
-                                        "name": "ParameterList",
-                                        "src": "1000:16:0"
-                                    },
-                                    {
-                                        "children": [
-                                            {
-                                                "attributes": {
-                                                    "constant": false,
-                                                    "name": "",
-                                                    "storageLocation": "default",
-                                                    "type": "uint256",
-                                                    "visibility": "internal"
-                                                },
-                                                "children": [
-                                                    {
-                                                        "attributes": {
-                                                            "name": "uint"
-                                                        },
-                                                        "id": 257,
-                                                        "name": "ElementaryTypeName",
-                                                        "src": "1035:4:0"
-                                                    }
-                                                ],
-                                                "id": 258,
-                                                "name": "VariableDeclaration",
-                                                "src": "1035:4:0"
-                                            }
-                                        ],
-                                        "id": 259,
-                                        "name": "ParameterList",
-                                        "src": "1034:6:0"
-                                    },
-                                    {
-                                        "children": [
-                                            {
-                                                "children": [
-                                                    {
-                                                        "attributes": {
-                                                            "type": "uint256"
-                                                        },
-                                                        "children": [
-                                                            {
-                                                                "attributes": {
-                                                                    "type": "mapping(address => uint256)",
-                                                                    "value": "balances"
-                                                                },
-                                                                "id": 260,
-                                                                "name": "Identifier",
-                                                                "src": "1058:8:0"
-                                                            },
-                                                            {
-                                                                "attributes": {
-                                                                    "type": "address",
-                                                                    "value": "_owner"
-                                                                },
-                                                                "id": 261,
-                                                                "name": "Identifier",
-                                                                "src": "1067:6:0"
-                                                            }
-                                                        ],
-                                                        "id": 262,
-                                                        "name": "IndexAccess",
-                                                        "src": "1058:16:0"
-                                                    }
-                                                ],
-                                                "id": 263,
-                                                "name": "Return",
-                                                "src": "1051:23:0"
-                                            }
-                                        ],
-                                        "id": 264,
-                                        "name": "Block",
-                                        "src": "1041:40:0"
-                                    }
-                                ],
-                                "id": 265,
-                                "name": "FunctionDefinition",
-                                "src": "982:99:0"
-                            },
-                            {
-                                "attributes": {
-                                    "constant": false,
-                                    "name": "approve",
-                                    "payable": false,
-                                    "visibility": "public"
-                                },
-                                "children": [
-                                    {
-                                        "children": [
-                                            {
-                                                "attributes": {
-                                                    "constant": false,
-                                                    "name": "_spender",
-                                                    "storageLocation": "default",
-                                                    "type": "address",
-                                                    "visibility": "internal"
-                                                },
-                                                "children": [
-                                                    {
-                                                        "attributes": {
-                                                            "name": "address"
-                                                        },
-                                                        "id": 266,
-                                                        "name": "ElementaryTypeName",
-                                                        "src": "1104:7:0"
-                                                    }
-                                                ],
-                                                "id": 267,
-                                                "name": "VariableDeclaration",
-                                                "src": "1104:16:0"
-                                            },
-                                            {
-                                                "attributes": {
-                                                    "constant": false,
-                                                    "name": "_value",
-                                                    "storageLocation": "default",
-                                                    "type": "uint256",
-                                                    "visibility": "internal"
-                                                },
-                                                "children": [
-                                                    {
-                                                        "attributes": {
-                                                            "name": "uint"
-                                                        },
-                                                        "id": 268,
-                                                        "name": "ElementaryTypeName",
-                                                        "src": "1122:4:0"
-                                                    }
-                                                ],
-                                                "id": 269,
-                                                "name": "VariableDeclaration",
-                                                "src": "1122:11:0"
-                                            }
-                                        ],
-                                        "id": 270,
-                                        "name": "ParameterList",
-                                        "src": "1103:31:0"
-                                    },
-                                    {
-                                        "children": [
-                                            {
-                                                "attributes": {
-                                                    "constant": false,
-                                                    "name": "",
-                                                    "storageLocation": "default",
-                                                    "type": "bool",
-                                                    "visibility": "internal"
-                                                },
-                                                "children": [
-                                                    {
-                                                        "attributes": {
-                                                            "name": "bool"
-                                                        },
-                                                        "id": 271,
-                                                        "name": "ElementaryTypeName",
-                                                        "src": "1144:4:0"
-                                                    }
-                                                ],
-                                                "id": 272,
-                                                "name": "VariableDeclaration",
-                                                "src": "1144:4:0"
-                                            }
-                                        ],
-                                        "id": 273,
-                                        "name": "ParameterList",
-                                        "src": "1143:6:0"
-                                    },
-                                    {
-                                        "children": [
-                                            {
-                                                "children": [
-                                                    {
-                                                        "attributes": {
-                                                            "operator": "=",
-                                                            "type": "uint256"
-                                                        },
-                                                        "children": [
-                                                            {
-                                                                "attributes": {
-                                                                    "type": "uint256"
-                                                                },
-                                                                "children": [
-                                                                    {
-                                                                        "attributes": {
-                                                                            "type": "mapping(address => uint256)"
-                                                                        },
-                                                                        "children": [
-                                                                            {
-                                                                                "attributes": {
-                                                                                    "type":
-                                                                                        "mapping(address => mapping(address => uint256))",
-                                                                                    "value": "allowed"
-                                                                                },
-                                                                                "id": 274,
-                                                                                "name": "Identifier",
-                                                                                "src": "1160:7:0"
-                                                                            },
-                                                                            {
-                                                                                "attributes": {
-                                                                                    "member_name": "sender",
-                                                                                    "type": "address"
-                                                                                },
-                                                                                "children": [
-                                                                                    {
-                                                                                        "attributes": {
-                                                                                            "type": "msg",
-                                                                                            "value": "msg"
-                                                                                        },
-                                                                                        "id": 275,
-                                                                                        "name": "Identifier",
-                                                                                        "src": "1168:3:0"
-                                                                                    }
-                                                                                ],
-                                                                                "id": 276,
-                                                                                "name": "MemberAccess",
-                                                                                "src": "1168:10:0"
-                                                                            }
-                                                                        ],
-                                                                        "id": 278,
-                                                                        "name": "IndexAccess",
-                                                                        "src": "1160:19:0"
-                                                                    },
-                                                                    {
-                                                                        "attributes": {
-                                                                            "type": "address",
-                                                                            "value": "_spender"
-                                                                        },
-                                                                        "id": 277,
-                                                                        "name": "Identifier",
-                                                                        "src": "1180:8:0"
-                                                                    }
-                                                                ],
-                                                                "id": 279,
-                                                                "name": "IndexAccess",
-                                                                "src": "1160:29:0"
-                                                            },
-                                                            {
-                                                                "attributes": {
-                                                                    "type": "uint256",
-                                                                    "value": "_value"
-                                                                },
-                                                                "id": 280,
-                                                                "name": "Identifier",
-                                                                "src": "1192:6:0"
-                                                            }
-                                                        ],
-                                                        "id": 281,
-                                                        "name": "Assignment",
-                                                        "src": "1160:38:0"
-                                                    }
-                                                ],
-                                                "id": 282,
-                                                "name": "ExpressionStatement",
-                                                "src": "1160:38:0"
-                                            },
-                                            {
-                                                "children": [
-                                                    {
-                                                        "attributes": {
-                                                            "type": "tuple()",
-                                                            "type_conversion": false
-                                                        },
-                                                        "children": [
-                                                            {
-                                                                "attributes": {
-                                                                    "type":
-                                                                        "function (address,address,uint256) constant",
-                                                                    "value": "Approval"
-                                                                },
-                                                                "id": 283,
-                                                                "name": "Identifier",
-                                                                "src": "1208:8:0"
-                                                            },
-                                                            {
-                                                                "attributes": {
-                                                                    "member_name": "sender",
-                                                                    "type": "address"
-                                                                },
-                                                                "children": [
-                                                                    {
-                                                                        "attributes": {
-                                                                            "type": "msg",
-                                                                            "value": "msg"
-                                                                        },
-                                                                        "id": 284,
-                                                                        "name": "Identifier",
-                                                                        "src": "1217:3:0"
-                                                                    }
-                                                                ],
-                                                                "id": 285,
-                                                                "name": "MemberAccess",
-                                                                "src": "1217:10:0"
-                                                            },
-                                                            {
-                                                                "attributes": {
-                                                                    "type": "address",
-                                                                    "value": "_spender"
-                                                                },
-                                                                "id": 286,
-                                                                "name": "Identifier",
-                                                                "src": "1229:8:0"
-                                                            },
-                                                            {
-                                                                "attributes": {
-                                                                    "type": "uint256",
-                                                                    "value": "_value"
-                                                                },
-                                                                "id": 287,
-                                                                "name": "Identifier",
-                                                                "src": "1239:6:0"
-                                                            }
-                                                        ],
-                                                        "id": 288,
-                                                        "name": "FunctionCall",
-                                                        "src": "1208:38:0"
-                                                    }
-                                                ],
-                                                "id": 289,
-                                                "name": "ExpressionStatement",
-                                                "src": "1208:38:0"
-                                            },
-                                            {
-                                                "children": [
-                                                    {
-                                                        "attributes": {
-                                                            "hexvalue": "74727565",
-                                                            "subdenomination": null,
-                                                            "token": "true",
-                                                            "type": "bool",
-                                                            "value": "true"
-                                                        },
-                                                        "id": 290,
-                                                        "name": "Literal",
-                                                        "src": "1263:4:0"
-                                                    }
-                                                ],
-                                                "id": 291,
-                                                "name": "Return",
-                                                "src": "1256:11:0"
-                                            }
-                                        ],
-                                        "id": 292,
-                                        "name": "Block",
-                                        "src": "1150:124:0"
-                                    }
-                                ],
-                                "id": 293,
-                                "name": "FunctionDefinition",
-                                "src": "1087:187:0"
-                            },
-                            {
-                                "attributes": {
-                                    "constant": true,
-                                    "name": "allowance",
-                                    "payable": false,
-                                    "visibility": "public"
-                                },
-                                "children": [
-                                    {
-                                        "children": [
-                                            {
-                                                "attributes": {
-                                                    "constant": false,
-                                                    "name": "_owner",
-                                                    "storageLocation": "default",
-                                                    "type": "address",
-                                                    "visibility": "internal"
-                                                },
-                                                "children": [
-                                                    {
-                                                        "attributes": {
-                                                            "name": "address"
-                                                        },
-                                                        "id": 294,
-                                                        "name": "ElementaryTypeName",
-                                                        "src": "1299:7:0"
-                                                    }
-                                                ],
-                                                "id": 295,
-                                                "name": "VariableDeclaration",
-                                                "src": "1299:14:0"
-                                            },
-                                            {
-                                                "attributes": {
-                                                    "constant": false,
-                                                    "name": "_spender",
-                                                    "storageLocation": "default",
-                                                    "type": "address",
-                                                    "visibility": "internal"
-                                                },
-                                                "children": [
-                                                    {
-                                                        "attributes": {
-                                                            "name": "address"
-                                                        },
-                                                        "id": 296,
-                                                        "name": "ElementaryTypeName",
-                                                        "src": "1315:7:0"
-                                                    }
-                                                ],
-                                                "id": 297,
-                                                "name": "VariableDeclaration",
-                                                "src": "1315:16:0"
-                                            }
-                                        ],
-                                        "id": 298,
-                                        "name": "ParameterList",
-                                        "src": "1298:34:0"
-                                    },
-                                    {
-                                        "children": [
-                                            {
-                                                "attributes": {
-                                                    "constant": false,
-                                                    "name": "",
-                                                    "storageLocation": "default",
-                                                    "type": "uint256",
-                                                    "visibility": "internal"
-                                                },
-                                                "children": [
-                                                    {
-                                                        "attributes": {
-                                                            "name": "uint"
-                                                        },
-                                                        "id": 299,
-                                                        "name": "ElementaryTypeName",
-                                                        "src": "1351:4:0"
-                                                    }
-                                                ],
-                                                "id": 300,
-                                                "name": "VariableDeclaration",
-                                                "src": "1351:4:0"
-                                            }
-                                        ],
-                                        "id": 301,
-                                        "name": "ParameterList",
-                                        "src": "1350:6:0"
-                                    },
-                                    {
-                                        "children": [
-                                            {
-                                                "children": [
-                                                    {
-                                                        "attributes": {
-                                                            "type": "uint256"
-                                                        },
-                                                        "children": [
-                                                            {
-                                                                "attributes": {
-                                                                    "type": "mapping(address => uint256)"
-                                                                },
-                                                                "children": [
-                                                                    {
-                                                                        "attributes": {
-                                                                            "type":
-                                                                                "mapping(address => mapping(address => uint256))",
-                                                                            "value": "allowed"
-                                                                        },
-                                                                        "id": 302,
-                                                                        "name": "Identifier",
-                                                                        "src": "1374:7:0"
-                                                                    },
-                                                                    {
-                                                                        "attributes": {
-                                                                            "type": "address",
-                                                                            "value": "_owner"
-                                                                        },
-                                                                        "id": 303,
-                                                                        "name": "Identifier",
-                                                                        "src": "1382:6:0"
-                                                                    }
-                                                                ],
-                                                                "id": 304,
-                                                                "name": "IndexAccess",
-                                                                "src": "1374:15:0"
-                                                            },
-                                                            {
-                                                                "attributes": {
-                                                                    "type": "address",
-                                                                    "value": "_spender"
-                                                                },
-                                                                "id": 305,
-                                                                "name": "Identifier",
-                                                                "src": "1390:8:0"
-                                                            }
-                                                        ],
-                                                        "id": 306,
-                                                        "name": "IndexAccess",
-                                                        "src": "1374:25:0"
-                                                    }
-                                                ],
-                                                "id": 307,
-                                                "name": "Return",
-                                                "src": "1367:32:0"
-                                            }
-                                        ],
-                                        "id": 308,
-                                        "name": "Block",
-                                        "src": "1357:49:0"
-                                    }
-                                ],
-                                "id": 309,
-                                "name": "FunctionDefinition",
-                                "src": "1280:126:0"
-                            },
-                            {
-                                "attributes": {
-                                    "constant": false,
-                                    "name": "balances",
-                                    "storageLocation": "default",
-                                    "type": "mapping(address => uint256)",
-                                    "visibility": "internal"
-                                },
-                                "children": [
-                                    {
-                                        "children": [
-                                            {
-                                                "attributes": {
-                                                    "name": "address"
-                                                },
-                                                "id": 310,
-                                                "name": "ElementaryTypeName",
-                                                "src": "1421:7:0"
-                                            },
-                                            {
-                                                "attributes": {
-                                                    "name": "uint"
-                                                },
-                                                "id": 311,
-                                                "name": "ElementaryTypeName",
-                                                "src": "1432:4:0"
-                                            }
-                                        ],
-                                        "id": 312,
-                                        "name": "Mapping",
-                                        "src": "1412:25:0"
-                                    }
-                                ],
-                                "id": 313,
-                                "name": "VariableDeclaration",
-                                "src": "1412:34:0"
-                            },
-                            {
-                                "attributes": {
-                                    "constant": false,
-                                    "name": "allowed",
-                                    "storageLocation": "default",
-                                    "type": "mapping(address => mapping(address => uint256))",
-                                    "visibility": "internal"
-                                },
-                                "children": [
-                                    {
-                                        "children": [
-                                            {
-                                                "attributes": {
-                                                    "name": "address"
-                                                },
-                                                "id": 314,
-                                                "name": "ElementaryTypeName",
-                                                "src": "1461:7:0"
-                                            },
-                                            {
-                                                "children": [
-                                                    {
-                                                        "attributes": {
-                                                            "name": "address"
-                                                        },
-                                                        "id": 315,
-                                                        "name": "ElementaryTypeName",
-                                                        "src": "1481:7:0"
-                                                    },
-                                                    {
-                                                        "attributes": {
-                                                            "name": "uint"
-                                                        },
-                                                        "id": 316,
-                                                        "name": "ElementaryTypeName",
-                                                        "src": "1492:4:0"
-                                                    }
-                                                ],
-                                                "id": 317,
-                                                "name": "Mapping",
-                                                "src": "1472:25:0"
-                                            }
-                                        ],
-                                        "id": 318,
-                                        "name": "Mapping",
-                                        "src": "1452:46:0"
-                                    }
-                                ],
-                                "id": 319,
-                                "name": "VariableDeclaration",
-                                "src": "1452:54:0"
-                            },
-                            {
-                                "attributes": {
-                                    "constant": false,
-                                    "name": "totalSupply",
-                                    "storageLocation": "default",
-                                    "type": "uint256",
-                                    "visibility": "public"
-                                },
-                                "children": [
-                                    {
-                                        "attributes": {
-                                            "name": "uint"
-                                        },
-                                        "id": 320,
-                                        "name": "ElementaryTypeName",
-                                        "src": "1512:4:0"
-                                    }
-                                ],
-                                "id": 321,
-                                "name": "VariableDeclaration",
-                                "src": "1512:23:0"
-                            }
-                        ],
-                        "id": 322,
-                        "name": "ContractDefinition",
-                        "src": "86:1452:0"
-                    }
-                ],
-                "name": "SourceUnit"
-            }
-        },
-        "1.0.0/Token/Token_v1.sol": {
-            "id": 1,
-            "legacyAST": {
-                "children": [
-                    {
-                        "attributes": {
-                            "literals": ["solidity", "^", "0.4", ".11"]
-                        },
-                        "id": 324,
-                        "name": "PragmaDirective",
-                        "src": "0:24:1"
-                    },
-                    {
-                        "attributes": {
-                            "fullyImplemented": true,
-                            "isLibrary": false,
-                            "linearizedBaseContracts": [397],
-                            "name": "Token_v1"
-                        },
-                        "children": [
-                            {
-                                "attributes": {
-                                    "constant": true,
-                                    "name": "totalSupply",
-                                    "payable": false,
-                                    "visibility": "public"
-                                },
-                                "children": [
-                                    {
-                                        "children": [],
-                                        "id": 325,
-                                        "name": "ParameterList",
-                                        "src": "110:2:1"
-                                    },
-                                    {
-                                        "children": [
-                                            {
-                                                "attributes": {
-                                                    "constant": false,
-                                                    "name": "supply",
-                                                    "storageLocation": "default",
-                                                    "type": "uint256",
-                                                    "visibility": "internal"
-                                                },
-                                                "children": [
-                                                    {
-                                                        "attributes": {
-                                                            "name": "uint"
-                                                        },
-                                                        "id": 326,
-                                                        "name": "ElementaryTypeName",
-                                                        "src": "131:4:1"
-                                                    }
-                                                ],
-                                                "id": 327,
-                                                "name": "VariableDeclaration",
-                                                "src": "131:11:1"
-                                            }
-                                        ],
-                                        "id": 328,
-                                        "name": "ParameterList",
-                                        "src": "130:13:1"
-                                    },
-                                    {
-                                        "children": [],
-                                        "id": 329,
-                                        "name": "Block",
-                                        "src": "144:2:1"
-                                    }
-                                ],
-                                "id": 330,
-                                "name": "FunctionDefinition",
-                                "src": "90:56:1"
-                            },
-                            {
-                                "attributes": {
-                                    "constant": true,
-                                    "name": "balanceOf",
-                                    "payable": false,
-                                    "visibility": "public"
-                                },
-                                "children": [
-                                    {
-                                        "children": [
-                                            {
-                                                "attributes": {
-                                                    "constant": false,
-                                                    "name": "_owner",
-                                                    "storageLocation": "default",
-                                                    "type": "address",
-                                                    "visibility": "internal"
-                                                },
-                                                "children": [
-                                                    {
-                                                        "attributes": {
-                                                            "name": "address"
-                                                        },
-                                                        "id": 331,
-                                                        "name": "ElementaryTypeName",
-                                                        "src": "274:7:1"
-                                                    }
-                                                ],
-                                                "id": 332,
-                                                "name": "VariableDeclaration",
-                                                "src": "274:14:1"
-                                            }
-                                        ],
-                                        "id": 333,
-                                        "name": "ParameterList",
-                                        "src": "273:16:1"
-                                    },
-                                    {
-                                        "children": [
-                                            {
-                                                "attributes": {
-                                                    "constant": false,
-                                                    "name": "balance",
-                                                    "storageLocation": "default",
-                                                    "type": "uint256",
-                                                    "visibility": "internal"
-                                                },
-                                                "children": [
-                                                    {
-                                                        "attributes": {
-                                                            "name": "uint"
-                                                        },
-                                                        "id": 334,
-                                                        "name": "ElementaryTypeName",
-                                                        "src": "308:4:1"
-                                                    }
-                                                ],
-                                                "id": 335,
-                                                "name": "VariableDeclaration",
-                                                "src": "308:12:1"
-                                            }
-                                        ],
-                                        "id": 336,
-                                        "name": "ParameterList",
-                                        "src": "307:14:1"
-                                    },
-                                    {
-                                        "children": [],
-                                        "id": 337,
-                                        "name": "Block",
-                                        "src": "322:2:1"
-                                    }
-                                ],
-                                "id": 338,
-                                "name": "FunctionDefinition",
-                                "src": "255:69:1"
-                            },
-                            {
-                                "attributes": {
-                                    "constant": false,
-                                    "name": "transfer",
-                                    "payable": false,
-                                    "visibility": "public"
-                                },
-                                "children": [
-                                    {
-                                        "children": [
-                                            {
-                                                "attributes": {
-                                                    "constant": false,
-                                                    "name": "_to",
-                                                    "storageLocation": "default",
-                                                    "type": "address",
-                                                    "visibility": "internal"
-                                                },
-                                                "children": [
-                                                    {
-                                                        "attributes": {
-                                                            "name": "address"
-                                                        },
-                                                        "id": 339,
-                                                        "name": "ElementaryTypeName",
-                                                        "src": "578:7:1"
-                                                    }
-                                                ],
-                                                "id": 340,
-                                                "name": "VariableDeclaration",
-                                                "src": "578:11:1"
-                                            },
-                                            {
-                                                "attributes": {
-                                                    "constant": false,
-                                                    "name": "_value",
-                                                    "storageLocation": "default",
-                                                    "type": "uint256",
-                                                    "visibility": "internal"
-                                                },
-                                                "children": [
-                                                    {
-                                                        "attributes": {
-                                                            "name": "uint"
-                                                        },
-                                                        "id": 341,
-                                                        "name": "ElementaryTypeName",
-                                                        "src": "591:4:1"
-                                                    }
-                                                ],
-                                                "id": 342,
-                                                "name": "VariableDeclaration",
-                                                "src": "591:11:1"
-                                            }
-                                        ],
-                                        "id": 343,
-                                        "name": "ParameterList",
-                                        "src": "577:26:1"
-                                    },
-                                    {
-                                        "children": [
-                                            {
-                                                "attributes": {
-                                                    "constant": false,
-                                                    "name": "success",
-                                                    "storageLocation": "default",
-                                                    "type": "bool",
-                                                    "visibility": "internal"
-                                                },
-                                                "children": [
-                                                    {
-                                                        "attributes": {
-                                                            "name": "bool"
-                                                        },
-                                                        "id": 344,
-                                                        "name": "ElementaryTypeName",
-                                                        "src": "613:4:1"
-                                                    }
-                                                ],
-                                                "id": 345,
-                                                "name": "VariableDeclaration",
-                                                "src": "613:12:1"
-                                            }
-                                        ],
-                                        "id": 346,
-                                        "name": "ParameterList",
-                                        "src": "612:14:1"
-                                    },
-                                    {
-                                        "children": [],
-                                        "id": 347,
-                                        "name": "Block",
-                                        "src": "627:2:1"
-                                    }
-                                ],
-                                "id": 348,
-                                "name": "FunctionDefinition",
-                                "src": "560:69:1"
-                            },
-                            {
-                                "attributes": {
-                                    "constant": false,
-                                    "name": "transferFrom",
-                                    "payable": false,
-                                    "visibility": "public"
-                                },
-                                "children": [
-                                    {
-                                        "children": [
-                                            {
-                                                "attributes": {
-                                                    "constant": false,
-                                                    "name": "_from",
-                                                    "storageLocation": "default",
-                                                    "type": "address",
-                                                    "visibility": "internal"
-                                                },
-                                                "children": [
-                                                    {
-                                                        "attributes": {
-                                                            "name": "address"
-                                                        },
-                                                        "id": 349,
-                                                        "name": "ElementaryTypeName",
-                                                        "src": "972:7:1"
-                                                    }
-                                                ],
-                                                "id": 350,
-                                                "name": "VariableDeclaration",
-                                                "src": "972:13:1"
-                                            },
-                                            {
-                                                "attributes": {
-                                                    "constant": false,
-                                                    "name": "_to",
-                                                    "storageLocation": "default",
-                                                    "type": "address",
-                                                    "visibility": "internal"
-                                                },
-                                                "children": [
-                                                    {
-                                                        "attributes": {
-                                                            "name": "address"
-                                                        },
-                                                        "id": 351,
-                                                        "name": "ElementaryTypeName",
-                                                        "src": "987:7:1"
-                                                    }
-                                                ],
-                                                "id": 352,
-                                                "name": "VariableDeclaration",
-                                                "src": "987:11:1"
-                                            },
-                                            {
-                                                "attributes": {
-                                                    "constant": false,
-                                                    "name": "_value",
-                                                    "storageLocation": "default",
-                                                    "type": "uint256",
-                                                    "visibility": "internal"
-                                                },
-                                                "children": [
-                                                    {
-                                                        "attributes": {
-                                                            "name": "uint"
-                                                        },
-                                                        "id": 353,
-                                                        "name": "ElementaryTypeName",
-                                                        "src": "1000:4:1"
-                                                    }
-                                                ],
-                                                "id": 354,
-                                                "name": "VariableDeclaration",
-                                                "src": "1000:11:1"
-                                            }
-                                        ],
-                                        "id": 355,
-                                        "name": "ParameterList",
-                                        "src": "971:41:1"
-                                    },
-                                    {
-                                        "children": [
-                                            {
-                                                "attributes": {
-                                                    "constant": false,
-                                                    "name": "success",
-                                                    "storageLocation": "default",
-                                                    "type": "bool",
-                                                    "visibility": "internal"
-                                                },
-                                                "children": [
-                                                    {
-                                                        "attributes": {
-                                                            "name": "bool"
-                                                        },
-                                                        "id": 356,
-                                                        "name": "ElementaryTypeName",
-                                                        "src": "1022:4:1"
-                                                    }
-                                                ],
-                                                "id": 357,
-                                                "name": "VariableDeclaration",
-                                                "src": "1022:12:1"
-                                            }
-                                        ],
-                                        "id": 358,
-                                        "name": "ParameterList",
-                                        "src": "1021:14:1"
-                                    },
-                                    {
-                                        "children": [],
-                                        "id": 359,
-                                        "name": "Block",
-                                        "src": "1036:2:1"
-                                    }
-                                ],
-                                "id": 360,
-                                "name": "FunctionDefinition",
-                                "src": "950:88:1"
-                            },
-                            {
-                                "attributes": {
-                                    "constant": false,
-                                    "name": "approve",
-                                    "payable": false,
-                                    "visibility": "public"
-                                },
-                                "children": [
-                                    {
-                                        "children": [
-                                            {
-                                                "attributes": {
-                                                    "constant": false,
-                                                    "name": "_spender",
-                                                    "storageLocation": "default",
-                                                    "type": "address",
-                                                    "visibility": "internal"
-                                                },
-                                                "children": [
-                                                    {
-                                                        "attributes": {
-                                                            "name": "address"
-                                                        },
-                                                        "id": 361,
-                                                        "name": "ElementaryTypeName",
-                                                        "src": "1338:7:1"
-                                                    }
-                                                ],
-                                                "id": 362,
-                                                "name": "VariableDeclaration",
-                                                "src": "1338:16:1"
-                                            },
-                                            {
-                                                "attributes": {
-                                                    "constant": false,
-                                                    "name": "_value",
-                                                    "storageLocation": "default",
-                                                    "type": "uint256",
-                                                    "visibility": "internal"
-                                                },
-                                                "children": [
-                                                    {
-                                                        "attributes": {
-                                                            "name": "uint"
-                                                        },
-                                                        "id": 363,
-                                                        "name": "ElementaryTypeName",
-                                                        "src": "1356:4:1"
-                                                    }
-                                                ],
-                                                "id": 364,
-                                                "name": "VariableDeclaration",
-                                                "src": "1356:11:1"
-                                            }
-                                        ],
-                                        "id": 365,
-                                        "name": "ParameterList",
-                                        "src": "1337:31:1"
-                                    },
-                                    {
-                                        "children": [
-                                            {
-                                                "attributes": {
-                                                    "constant": false,
-                                                    "name": "success",
-                                                    "storageLocation": "default",
-                                                    "type": "bool",
-                                                    "visibility": "internal"
-                                                },
-                                                "children": [
-                                                    {
-                                                        "attributes": {
-                                                            "name": "bool"
-                                                        },
-                                                        "id": 366,
-                                                        "name": "ElementaryTypeName",
-                                                        "src": "1378:4:1"
-                                                    }
-                                                ],
-                                                "id": 367,
-                                                "name": "VariableDeclaration",
-                                                "src": "1378:12:1"
-                                            }
-                                        ],
-                                        "id": 368,
-                                        "name": "ParameterList",
-                                        "src": "1377:14:1"
-                                    },
-                                    {
-                                        "children": [],
-                                        "id": 369,
-                                        "name": "Block",
-                                        "src": "1392:2:1"
-                                    }
-                                ],
-                                "id": 370,
-                                "name": "FunctionDefinition",
-                                "src": "1321:73:1"
-                            },
-                            {
-                                "attributes": {
-                                    "constant": true,
-                                    "name": "allowance",
-                                    "payable": false,
-                                    "visibility": "public"
-                                },
-                                "children": [
-                                    {
-                                        "children": [
-                                            {
-                                                "attributes": {
-                                                    "constant": false,
-                                                    "name": "_owner",
-                                                    "storageLocation": "default",
-                                                    "type": "address",
-                                                    "visibility": "internal"
-                                                },
-                                                "children": [
-                                                    {
-                                                        "attributes": {
-                                                            "name": "address"
-                                                        },
-                                                        "id": 371,
-                                                        "name": "ElementaryTypeName",
-                                                        "src": "1621:7:1"
-                                                    }
-                                                ],
-                                                "id": 372,
-                                                "name": "VariableDeclaration",
-                                                "src": "1621:14:1"
-                                            },
-                                            {
-                                                "attributes": {
-                                                    "constant": false,
-                                                    "name": "_spender",
-                                                    "storageLocation": "default",
-                                                    "type": "address",
-                                                    "visibility": "internal"
-                                                },
-                                                "children": [
-                                                    {
-                                                        "attributes": {
-                                                            "name": "address"
-                                                        },
-                                                        "id": 373,
-                                                        "name": "ElementaryTypeName",
-                                                        "src": "1637:7:1"
-                                                    }
-                                                ],
-                                                "id": 374,
-                                                "name": "VariableDeclaration",
-                                                "src": "1637:16:1"
-                                            }
-                                        ],
-                                        "id": 375,
-                                        "name": "ParameterList",
-                                        "src": "1620:34:1"
-                                    },
-                                    {
-                                        "children": [
-                                            {
-                                                "attributes": {
-                                                    "constant": false,
-                                                    "name": "remaining",
-                                                    "storageLocation": "default",
-                                                    "type": "uint256",
-                                                    "visibility": "internal"
-                                                },
-                                                "children": [
-                                                    {
-                                                        "attributes": {
-                                                            "name": "uint"
-                                                        },
-                                                        "id": 376,
-                                                        "name": "ElementaryTypeName",
-                                                        "src": "1673:4:1"
-                                                    }
-                                                ],
-                                                "id": 377,
-                                                "name": "VariableDeclaration",
-                                                "src": "1673:14:1"
-                                            }
-                                        ],
-                                        "id": 378,
-                                        "name": "ParameterList",
-                                        "src": "1672:16:1"
-                                    },
-                                    {
-                                        "children": [],
-                                        "id": 379,
-                                        "name": "Block",
-                                        "src": "1689:2:1"
-                                    }
-                                ],
-                                "id": 380,
-                                "name": "FunctionDefinition",
-                                "src": "1602:89:1"
-                            },
-                            {
-                                "attributes": {
-                                    "name": "Transfer"
-                                },
-                                "children": [
-                                    {
-                                        "children": [
-                                            {
-                                                "attributes": {
-                                                    "constant": false,
-                                                    "indexed": true,
-                                                    "name": "_from",
-                                                    "storageLocation": "default",
-                                                    "type": "address",
-                                                    "visibility": "internal"
-                                                },
-                                                "children": [
-                                                    {
-                                                        "attributes": {
-                                                            "name": "address"
-                                                        },
-                                                        "id": 381,
-                                                        "name": "ElementaryTypeName",
-                                                        "src": "1712:7:1"
-                                                    }
-                                                ],
-                                                "id": 382,
-                                                "name": "VariableDeclaration",
-                                                "src": "1712:21:1"
-                                            },
-                                            {
-                                                "attributes": {
-                                                    "constant": false,
-                                                    "indexed": true,
-                                                    "name": "_to",
-                                                    "storageLocation": "default",
-                                                    "type": "address",
-                                                    "visibility": "internal"
-                                                },
-                                                "children": [
-                                                    {
-                                                        "attributes": {
-                                                            "name": "address"
-                                                        },
-                                                        "id": 383,
-                                                        "name": "ElementaryTypeName",
-                                                        "src": "1735:7:1"
-                                                    }
-                                                ],
-                                                "id": 384,
-                                                "name": "VariableDeclaration",
-                                                "src": "1735:19:1"
-                                            },
-                                            {
-                                                "attributes": {
-                                                    "constant": false,
-                                                    "indexed": false,
-                                                    "name": "_value",
-                                                    "storageLocation": "default",
-                                                    "type": "uint256",
-                                                    "visibility": "internal"
-                                                },
-                                                "children": [
-                                                    {
-                                                        "attributes": {
-                                                            "name": "uint"
-                                                        },
-                                                        "id": 385,
-                                                        "name": "ElementaryTypeName",
-                                                        "src": "1756:4:1"
-                                                    }
-                                                ],
-                                                "id": 386,
-                                                "name": "VariableDeclaration",
-                                                "src": "1756:11:1"
-                                            }
-                                        ],
-                                        "id": 387,
-                                        "name": "ParameterList",
-                                        "src": "1711:57:1"
-                                    }
-                                ],
-                                "id": 388,
-                                "name": "EventDefinition",
-                                "src": "1697:72:1"
-                            },
-                            {
-                                "attributes": {
-                                    "name": "Approval"
-                                },
-                                "children": [
-                                    {
-                                        "children": [
-                                            {
-                                                "attributes": {
-                                                    "constant": false,
-                                                    "indexed": true,
-                                                    "name": "_owner",
-                                                    "storageLocation": "default",
-                                                    "type": "address",
-                                                    "visibility": "internal"
-                                                },
-                                                "children": [
-                                                    {
-                                                        "attributes": {
-                                                            "name": "address"
-                                                        },
-                                                        "id": 389,
-                                                        "name": "ElementaryTypeName",
-                                                        "src": "1789:7:1"
-                                                    }
-                                                ],
-                                                "id": 390,
-                                                "name": "VariableDeclaration",
-                                                "src": "1789:22:1"
-                                            },
-                                            {
-                                                "attributes": {
-                                                    "constant": false,
-                                                    "indexed": true,
-                                                    "name": "_spender",
-                                                    "storageLocation": "default",
-                                                    "type": "address",
-                                                    "visibility": "internal"
-                                                },
-                                                "children": [
-                                                    {
-                                                        "attributes": {
-                                                            "name": "address"
-                                                        },
-                                                        "id": 391,
-                                                        "name": "ElementaryTypeName",
-                                                        "src": "1813:7:1"
-                                                    }
-                                                ],
-                                                "id": 392,
-                                                "name": "VariableDeclaration",
-                                                "src": "1813:24:1"
-                                            },
-                                            {
-                                                "attributes": {
-                                                    "constant": false,
-                                                    "indexed": false,
-                                                    "name": "_value",
-                                                    "storageLocation": "default",
-                                                    "type": "uint256",
-                                                    "visibility": "internal"
-                                                },
-                                                "children": [
-                                                    {
-                                                        "attributes": {
-                                                            "name": "uint"
-                                                        },
-                                                        "id": 393,
-                                                        "name": "ElementaryTypeName",
-                                                        "src": "1839:4:1"
-                                                    }
-                                                ],
-                                                "id": 394,
-                                                "name": "VariableDeclaration",
-                                                "src": "1839:11:1"
-                                            }
-                                        ],
-                                        "id": 395,
-                                        "name": "ParameterList",
-                                        "src": "1788:63:1"
-                                    }
-                                ],
-                                "id": 396,
-                                "name": "EventDefinition",
-                                "src": "1774:78:1"
-                            }
-                        ],
-                        "id": 397,
-                        "name": "ContractDefinition",
-                        "src": "26:1828:1"
-                    }
-                ],
-                "name": "SourceUnit"
-            }
-        },
-        "1.0.0/UnlimitedAllowanceToken/UnlimitedAllowanceToken_v1.sol": {
-            "id": 2,
-            "legacyAST": {
-                "children": [
-                    {
-                        "attributes": {
-                            "literals": ["solidity", "^", "0.4", ".11"]
-                        },
-                        "id": 33,
-                        "name": "PragmaDirective",
-                        "src": "580:24:2"
-                    },
-                    {
-                        "attributes": {
-                            "file": "../ERC20Token/ERC20Token_v1.sol"
-                        },
-                        "id": 35,
-                        "name": "ImportDirective",
-                        "src": "606:78:2"
-                    },
-                    {
-                        "attributes": {
-                            "fullyImplemented": true,
-                            "isLibrary": false,
-                            "linearizedBaseContracts": [124, 322, 397],
-                            "name": "UnlimitedAllowanceToken_v1"
-                        },
-                        "children": [
-                            {
-                                "children": [
-                                    {
-                                        "attributes": {
-                                            "name": "ERC20Token"
-                                        },
-                                        "id": 36,
-                                        "name": "UserDefinedTypeName",
-                                        "src": "725:10:2"
-                                    }
-                                ],
-                                "id": 37,
-                                "name": "InheritanceSpecifier",
-                                "src": "725:10:2"
-                            },
-                            {
-                                "attributes": {
-                                    "constant": true,
-                                    "name": "MAX_UINT",
-                                    "storageLocation": "default",
-                                    "type": "uint256",
-                                    "visibility": "internal"
-                                },
-                                "children": [
-                                    {
-                                        "attributes": {
-                                            "name": "uint"
-                                        },
-                                        "id": 38,
-                                        "name": "ElementaryTypeName",
-                                        "src": "743:4:2"
-                                    },
-                                    {
-                                        "attributes": {
-                                            "operator": "-",
-                                            "type":
-                                                "int_const 115792089237316195423570985008687907853269984665640564039457584007913129639935"
-                                        },
-                                        "children": [
-                                            {
-                                                "attributes": {
-                                                    "operator": "**",
-                                                    "type":
-                                                        "int_const 115792089237316195423570985008687907853269984665640564039457584007913129639936"
-                                                },
-                                                "children": [
-                                                    {
-                                                        "attributes": {
-                                                            "hexvalue": "32",
-                                                            "subdenomination": null,
-                                                            "token": null,
-                                                            "type": "int_const 2",
-                                                            "value": "2"
-                                                        },
-                                                        "id": 39,
-                                                        "name": "Literal",
-                                                        "src": "768:1:2"
-                                                    },
-                                                    {
-                                                        "attributes": {
-                                                            "hexvalue": "323536",
-                                                            "subdenomination": null,
-                                                            "token": null,
-                                                            "type": "int_const 256",
-                                                            "value": "256"
-                                                        },
-                                                        "id": 40,
-                                                        "name": "Literal",
-                                                        "src": "771:3:2"
-                                                    }
-                                                ],
-                                                "id": 41,
-                                                "name": "BinaryOperation",
-                                                "src": "768:6:2"
-                                            },
-                                            {
-                                                "attributes": {
-                                                    "hexvalue": "31",
-                                                    "subdenomination": null,
-                                                    "token": null,
-                                                    "type": "int_const 1",
-                                                    "value": "1"
-                                                },
-                                                "id": 42,
-                                                "name": "Literal",
-                                                "src": "777:1:2"
-                                            }
-                                        ],
-                                        "id": 43,
-                                        "name": "BinaryOperation",
-                                        "src": "768:10:2"
-                                    }
-                                ],
-                                "id": 44,
-                                "name": "VariableDeclaration",
-                                "src": "743:35:2"
-                            },
-                            {
-                                "attributes": {
-                                    "constant": false,
-                                    "name": "transferFrom",
-                                    "payable": false,
-                                    "visibility": "public"
-                                },
-                                "children": [
-                                    {
-                                        "children": [
-                                            {
-                                                "attributes": {
-                                                    "constant": false,
-                                                    "name": "_from",
-                                                    "storageLocation": "default",
-                                                    "type": "address",
-                                                    "visibility": "internal"
-                                                },
-                                                "children": [
-                                                    {
-                                                        "attributes": {
-                                                            "name": "address"
-                                                        },
-                                                        "id": 45,
-                                                        "name": "ElementaryTypeName",
-                                                        "src": "1088:7:2"
-                                                    }
-                                                ],
-                                                "id": 46,
-                                                "name": "VariableDeclaration",
-                                                "src": "1088:13:2"
-                                            },
-                                            {
-                                                "attributes": {
-                                                    "constant": false,
-                                                    "name": "_to",
-                                                    "storageLocation": "default",
-                                                    "type": "address",
-                                                    "visibility": "internal"
-                                                },
-                                                "children": [
-                                                    {
-                                                        "attributes": {
-                                                            "name": "address"
-                                                        },
-                                                        "id": 47,
-                                                        "name": "ElementaryTypeName",
-                                                        "src": "1103:7:2"
-                                                    }
-                                                ],
-                                                "id": 48,
-                                                "name": "VariableDeclaration",
-                                                "src": "1103:11:2"
-                                            },
-                                            {
-                                                "attributes": {
-                                                    "constant": false,
-                                                    "name": "_value",
-                                                    "storageLocation": "default",
-                                                    "type": "uint256",
-                                                    "visibility": "internal"
-                                                },
-                                                "children": [
-                                                    {
-                                                        "attributes": {
-                                                            "name": "uint"
-                                                        },
-                                                        "id": 49,
-                                                        "name": "ElementaryTypeName",
-                                                        "src": "1116:4:2"
-                                                    }
-                                                ],
-                                                "id": 50,
-                                                "name": "VariableDeclaration",
-                                                "src": "1116:11:2"
-                                            }
-                                        ],
-                                        "id": 51,
-                                        "name": "ParameterList",
-                                        "src": "1087:41:2"
-                                    },
-                                    {
-                                        "children": [
-                                            {
-                                                "attributes": {
-                                                    "constant": false,
-                                                    "name": "",
-                                                    "storageLocation": "default",
-                                                    "type": "bool",
-                                                    "visibility": "internal"
-                                                },
-                                                "children": [
-                                                    {
-                                                        "attributes": {
-                                                            "name": "bool"
-                                                        },
-                                                        "id": 52,
-                                                        "name": "ElementaryTypeName",
-                                                        "src": "1161:4:2"
-                                                    }
-                                                ],
-                                                "id": 53,
-                                                "name": "VariableDeclaration",
-                                                "src": "1161:4:2"
-                                            }
-                                        ],
-                                        "id": 54,
-                                        "name": "ParameterList",
-                                        "src": "1160:6:2"
-                                    },
-                                    {
-                                        "children": [
-                                            {
-                                                "children": [
-                                                    {
-                                                        "attributes": {
-                                                            "constant": false,
-                                                            "name": "allowance",
-                                                            "storageLocation": "default",
-                                                            "type": "uint256",
-                                                            "visibility": "internal"
-                                                        },
-                                                        "children": [
-                                                            {
-                                                                "attributes": {
-                                                                    "name": "uint"
-                                                                },
-                                                                "id": 55,
-                                                                "name": "ElementaryTypeName",
-                                                                "src": "1181:4:2"
-                                                            }
-                                                        ],
-                                                        "id": 56,
-                                                        "name": "VariableDeclaration",
-                                                        "src": "1181:14:2"
-                                                    },
-                                                    {
-                                                        "attributes": {
-                                                            "type": "uint256"
-                                                        },
-                                                        "children": [
-                                                            {
-                                                                "attributes": {
-                                                                    "type": "mapping(address => uint256)"
-                                                                },
-                                                                "children": [
-                                                                    {
-                                                                        "attributes": {
-                                                                            "type":
-                                                                                "mapping(address => mapping(address => uint256))",
-                                                                            "value": "allowed"
-                                                                        },
-                                                                        "id": 57,
-                                                                        "name": "Identifier",
-                                                                        "src": "1198:7:2"
-                                                                    },
-                                                                    {
-                                                                        "attributes": {
-                                                                            "type": "address",
-                                                                            "value": "_from"
-                                                                        },
-                                                                        "id": 58,
-                                                                        "name": "Identifier",
-                                                                        "src": "1206:5:2"
-                                                                    }
-                                                                ],
-                                                                "id": 59,
-                                                                "name": "IndexAccess",
-                                                                "src": "1198:14:2"
-                                                            },
-                                                            {
-                                                                "attributes": {
-                                                                    "member_name": "sender",
-                                                                    "type": "address"
-                                                                },
-                                                                "children": [
-                                                                    {
-                                                                        "attributes": {
-                                                                            "type": "msg",
-                                                                            "value": "msg"
-                                                                        },
-                                                                        "id": 60,
-                                                                        "name": "Identifier",
-                                                                        "src": "1213:3:2"
-                                                                    }
-                                                                ],
-                                                                "id": 61,
-                                                                "name": "MemberAccess",
-                                                                "src": "1213:10:2"
-                                                            }
-                                                        ],
-                                                        "id": 62,
-                                                        "name": "IndexAccess",
-                                                        "src": "1198:26:2"
-                                                    }
-                                                ],
-                                                "id": 63,
-                                                "name": "VariableDeclarationStatement",
-                                                "src": "1181:43:2"
-                                            },
-                                            {
-                                                "children": [
-                                                    {
-                                                        "attributes": {
-                                                            "operator": "&&",
-                                                            "type": "bool"
-                                                        },
-                                                        "children": [
-                                                            {
-                                                                "attributes": {
-                                                                    "operator": "&&",
-                                                                    "type": "bool"
-                                                                },
-                                                                "children": [
-                                                                    {
-                                                                        "attributes": {
-                                                                            "operator": ">=",
-                                                                            "type": "bool"
-                                                                        },
-                                                                        "children": [
-                                                                            {
-                                                                                "attributes": {
-                                                                                    "type": "uint256"
-                                                                                },
-                                                                                "children": [
-                                                                                    {
-                                                                                        "attributes": {
-                                                                                            "type":
-                                                                                                "mapping(address => uint256)",
-                                                                                            "value": "balances"
-                                                                                        },
-                                                                                        "id": 64,
-                                                                                        "name": "Identifier",
-                                                                                        "src": "1238:8:2"
-                                                                                    },
-                                                                                    {
-                                                                                        "attributes": {
-                                                                                            "type": "address",
-                                                                                            "value": "_from"
-                                                                                        },
-                                                                                        "id": 65,
-                                                                                        "name": "Identifier",
-                                                                                        "src": "1247:5:2"
-                                                                                    }
-                                                                                ],
-                                                                                "id": 66,
-                                                                                "name": "IndexAccess",
-                                                                                "src": "1238:15:2"
-                                                                            },
-                                                                            {
-                                                                                "attributes": {
-                                                                                    "type": "uint256",
-                                                                                    "value": "_value"
-                                                                                },
-                                                                                "id": 67,
-                                                                                "name": "Identifier",
-                                                                                "src": "1257:6:2"
-                                                                            }
-                                                                        ],
-                                                                        "id": 68,
-                                                                        "name": "BinaryOperation",
-                                                                        "src": "1238:25:2"
-                                                                    },
-                                                                    {
-                                                                        "attributes": {
-                                                                            "operator": ">=",
-                                                                            "type": "bool"
-                                                                        },
-                                                                        "children": [
-                                                                            {
-                                                                                "attributes": {
-                                                                                    "type": "uint256",
-                                                                                    "value": "allowance"
-                                                                                },
-                                                                                "id": 69,
-                                                                                "name": "Identifier",
-                                                                                "src": "1279:9:2"
-                                                                            },
-                                                                            {
-                                                                                "attributes": {
-                                                                                    "type": "uint256",
-                                                                                    "value": "_value"
-                                                                                },
-                                                                                "id": 70,
-                                                                                "name": "Identifier",
-                                                                                "src": "1292:6:2"
-                                                                            }
-                                                                        ],
-                                                                        "id": 71,
-                                                                        "name": "BinaryOperation",
-                                                                        "src": "1279:19:2"
-                                                                    }
-                                                                ],
-                                                                "id": 72,
-                                                                "name": "BinaryOperation",
-                                                                "src": "1238:60:2"
-                                                            },
-                                                            {
-                                                                "attributes": {
-                                                                    "operator": ">=",
-                                                                    "type": "bool"
-                                                                },
-                                                                "children": [
-                                                                    {
-                                                                        "attributes": {
-                                                                            "operator": "+",
-                                                                            "type": "uint256"
-                                                                        },
-                                                                        "children": [
-                                                                            {
-                                                                                "attributes": {
-                                                                                    "type": "uint256"
-                                                                                },
-                                                                                "children": [
-                                                                                    {
-                                                                                        "attributes": {
-                                                                                            "type":
-                                                                                                "mapping(address => uint256)",
-                                                                                            "value": "balances"
-                                                                                        },
-                                                                                        "id": 73,
-                                                                                        "name": "Identifier",
-                                                                                        "src": "1314:8:2"
-                                                                                    },
-                                                                                    {
-                                                                                        "attributes": {
-                                                                                            "type": "address",
-                                                                                            "value": "_to"
-                                                                                        },
-                                                                                        "id": 74,
-                                                                                        "name": "Identifier",
-                                                                                        "src": "1323:3:2"
-                                                                                    }
-                                                                                ],
-                                                                                "id": 75,
-                                                                                "name": "IndexAccess",
-                                                                                "src": "1314:13:2"
-                                                                            },
-                                                                            {
-                                                                                "attributes": {
-                                                                                    "type": "uint256",
-                                                                                    "value": "_value"
-                                                                                },
-                                                                                "id": 76,
-                                                                                "name": "Identifier",
-                                                                                "src": "1330:6:2"
-                                                                            }
-                                                                        ],
-                                                                        "id": 77,
-                                                                        "name": "BinaryOperation",
-                                                                        "src": "1314:22:2"
-                                                                    },
-                                                                    {
-                                                                        "attributes": {
-                                                                            "type": "uint256"
-                                                                        },
-                                                                        "children": [
-                                                                            {
-                                                                                "attributes": {
-                                                                                    "type":
-                                                                                        "mapping(address => uint256)",
-                                                                                    "value": "balances"
-                                                                                },
-                                                                                "id": 78,
-                                                                                "name": "Identifier",
-                                                                                "src": "1340:8:2"
-                                                                            },
-                                                                            {
-                                                                                "attributes": {
-                                                                                    "type": "address",
-                                                                                    "value": "_to"
-                                                                                },
-                                                                                "id": 79,
-                                                                                "name": "Identifier",
-                                                                                "src": "1349:3:2"
-                                                                            }
-                                                                        ],
-                                                                        "id": 80,
-                                                                        "name": "IndexAccess",
-                                                                        "src": "1340:13:2"
-                                                                    }
-                                                                ],
-                                                                "id": 81,
-                                                                "name": "BinaryOperation",
-                                                                "src": "1314:39:2"
-                                                            }
-                                                        ],
-                                                        "id": 82,
-                                                        "name": "BinaryOperation",
-                                                        "src": "1238:115:2"
-                                                    },
-                                                    {
-                                                        "children": [
-                                                            {
-                                                                "children": [
-                                                                    {
-                                                                        "attributes": {
-                                                                            "operator": "+=",
-                                                                            "type": "uint256"
-                                                                        },
-                                                                        "children": [
-                                                                            {
-                                                                                "attributes": {
-                                                                                    "type": "uint256"
-                                                                                },
-                                                                                "children": [
-                                                                                    {
-                                                                                        "attributes": {
-                                                                                            "type":
-                                                                                                "mapping(address => uint256)",
-                                                                                            "value": "balances"
-                                                                                        },
-                                                                                        "id": 83,
-                                                                                        "name": "Identifier",
-                                                                                        "src": "1378:8:2"
-                                                                                    },
-                                                                                    {
-                                                                                        "attributes": {
-                                                                                            "type": "address",
-                                                                                            "value": "_to"
-                                                                                        },
-                                                                                        "id": 84,
-                                                                                        "name": "Identifier",
-                                                                                        "src": "1387:3:2"
-                                                                                    }
-                                                                                ],
-                                                                                "id": 85,
-                                                                                "name": "IndexAccess",
-                                                                                "src": "1378:13:2"
-                                                                            },
-                                                                            {
-                                                                                "attributes": {
-                                                                                    "type": "uint256",
-                                                                                    "value": "_value"
-                                                                                },
-                                                                                "id": 86,
-                                                                                "name": "Identifier",
-                                                                                "src": "1395:6:2"
-                                                                            }
-                                                                        ],
-                                                                        "id": 87,
-                                                                        "name": "Assignment",
-                                                                        "src": "1378:23:2"
-                                                                    }
-                                                                ],
-                                                                "id": 88,
-                                                                "name": "ExpressionStatement",
-                                                                "src": "1378:23:2"
-                                                            },
-                                                            {
-                                                                "children": [
-                                                                    {
-                                                                        "attributes": {
-                                                                            "operator": "-=",
-                                                                            "type": "uint256"
-                                                                        },
-                                                                        "children": [
-                                                                            {
-                                                                                "attributes": {
-                                                                                    "type": "uint256"
-                                                                                },
-                                                                                "children": [
-                                                                                    {
-                                                                                        "attributes": {
-                                                                                            "type":
-                                                                                                "mapping(address => uint256)",
-                                                                                            "value": "balances"
-                                                                                        },
-                                                                                        "id": 89,
-                                                                                        "name": "Identifier",
-                                                                                        "src": "1415:8:2"
-                                                                                    },
-                                                                                    {
-                                                                                        "attributes": {
-                                                                                            "type": "address",
-                                                                                            "value": "_from"
-                                                                                        },
-                                                                                        "id": 90,
-                                                                                        "name": "Identifier",
-                                                                                        "src": "1424:5:2"
-                                                                                    }
-                                                                                ],
-                                                                                "id": 91,
-                                                                                "name": "IndexAccess",
-                                                                                "src": "1415:15:2"
-                                                                            },
-                                                                            {
-                                                                                "attributes": {
-                                                                                    "type": "uint256",
-                                                                                    "value": "_value"
-                                                                                },
-                                                                                "id": 92,
-                                                                                "name": "Identifier",
-                                                                                "src": "1434:6:2"
-                                                                            }
-                                                                        ],
-                                                                        "id": 93,
-                                                                        "name": "Assignment",
-                                                                        "src": "1415:25:2"
-                                                                    }
-                                                                ],
-                                                                "id": 94,
-                                                                "name": "ExpressionStatement",
-                                                                "src": "1415:25:2"
-                                                            },
-                                                            {
-                                                                "children": [
-                                                                    {
-                                                                        "attributes": {
-                                                                            "operator": "<",
-                                                                            "type": "bool"
-                                                                        },
-                                                                        "children": [
-                                                                            {
-                                                                                "attributes": {
-                                                                                    "type": "uint256",
-                                                                                    "value": "allowance"
-                                                                                },
-                                                                                "id": 95,
-                                                                                "name": "Identifier",
-                                                                                "src": "1458:9:2"
-                                                                            },
-                                                                            {
-                                                                                "attributes": {
-                                                                                    "type": "uint256",
-                                                                                    "value": "MAX_UINT"
-                                                                                },
-                                                                                "id": 96,
-                                                                                "name": "Identifier",
-                                                                                "src": "1470:8:2"
-                                                                            }
-                                                                        ],
-                                                                        "id": 97,
-                                                                        "name": "BinaryOperation",
-                                                                        "src": "1458:20:2"
-                                                                    },
-                                                                    {
-                                                                        "children": [
-                                                                            {
-                                                                                "children": [
-                                                                                    {
-                                                                                        "attributes": {
-                                                                                            "operator": "-=",
-                                                                                            "type": "uint256"
-                                                                                        },
-                                                                                        "children": [
-                                                                                            {
-                                                                                                "attributes": {
-                                                                                                    "type": "uint256"
-                                                                                                },
-                                                                                                "children": [
-                                                                                                    {
-                                                                                                        "attributes": {
-                                                                                                            "type":
-                                                                                                                "mapping(address => uint256)"
-                                                                                                        },
-                                                                                                        "children": [
-                                                                                                            {
-                                                                                                                "attributes": {
-                                                                                                                    "type":
-                                                                                                                        "mapping(address => mapping(address => uint256))",
-                                                                                                                    "value":
-                                                                                                                        "allowed"
-                                                                                                                },
-                                                                                                                "id": 98,
-                                                                                                                "name":
-                                                                                                                    "Identifier",
-                                                                                                                "src":
-                                                                                                                    "1498:7:2"
-                                                                                                            },
-                                                                                                            {
-                                                                                                                "attributes": {
-                                                                                                                    "type":
-                                                                                                                        "address",
-                                                                                                                    "value":
-                                                                                                                        "_from"
-                                                                                                                },
-                                                                                                                "id": 99,
-                                                                                                                "name":
-                                                                                                                    "Identifier",
-                                                                                                                "src":
-                                                                                                                    "1506:5:2"
-                                                                                                            }
-                                                                                                        ],
-                                                                                                        "id": 102,
-                                                                                                        "name":
-                                                                                                            "IndexAccess",
-                                                                                                        "src":
-                                                                                                            "1498:14:2"
-                                                                                                    },
-                                                                                                    {
-                                                                                                        "attributes": {
-                                                                                                            "member_name":
-                                                                                                                "sender",
-                                                                                                            "type":
-                                                                                                                "address"
-                                                                                                        },
-                                                                                                        "children": [
-                                                                                                            {
-                                                                                                                "attributes": {
-                                                                                                                    "type":
-                                                                                                                        "msg",
-                                                                                                                    "value":
-                                                                                                                        "msg"
-                                                                                                                },
-                                                                                                                "id": 100,
-                                                                                                                "name":
-                                                                                                                    "Identifier",
-                                                                                                                "src":
-                                                                                                                    "1513:3:2"
-                                                                                                            }
-                                                                                                        ],
-                                                                                                        "id": 101,
-                                                                                                        "name":
-                                                                                                            "MemberAccess",
-                                                                                                        "src":
-                                                                                                            "1513:10:2"
-                                                                                                    }
-                                                                                                ],
-                                                                                                "id": 103,
-                                                                                                "name": "IndexAccess",
-                                                                                                "src": "1498:26:2"
-                                                                                            },
-                                                                                            {
-                                                                                                "attributes": {
-                                                                                                    "type": "uint256",
-                                                                                                    "value": "_value"
-                                                                                                },
-                                                                                                "id": 104,
-                                                                                                "name": "Identifier",
-                                                                                                "src": "1528:6:2"
-                                                                                            }
-                                                                                        ],
-                                                                                        "id": 105,
-                                                                                        "name": "Assignment",
-                                                                                        "src": "1498:36:2"
-                                                                                    }
-                                                                                ],
-                                                                                "id": 106,
-                                                                                "name": "ExpressionStatement",
-                                                                                "src": "1498:36:2"
-                                                                            }
-                                                                        ],
-                                                                        "id": 107,
-                                                                        "name": "Block",
-                                                                        "src": "1480:69:2"
-                                                                    }
-                                                                ],
-                                                                "id": 108,
-                                                                "name": "IfStatement",
-                                                                "src": "1454:95:2"
-                                                            },
-                                                            {
-                                                                "children": [
-                                                                    {
-                                                                        "attributes": {
-                                                                            "type": "tuple()",
-                                                                            "type_conversion": false
-                                                                        },
-                                                                        "children": [
-                                                                            {
-                                                                                "attributes": {
-                                                                                    "type":
-                                                                                        "function (address,address,uint256) constant",
-                                                                                    "value": "Transfer"
-                                                                                },
-                                                                                "id": 109,
-                                                                                "name": "Identifier",
-                                                                                "src": "1562:8:2"
-                                                                            },
-                                                                            {
-                                                                                "attributes": {
-                                                                                    "type": "address",
-                                                                                    "value": "_from"
-                                                                                },
-                                                                                "id": 110,
-                                                                                "name": "Identifier",
-                                                                                "src": "1571:5:2"
-                                                                            },
-                                                                            {
-                                                                                "attributes": {
-                                                                                    "type": "address",
-                                                                                    "value": "_to"
-                                                                                },
-                                                                                "id": 111,
-                                                                                "name": "Identifier",
-                                                                                "src": "1578:3:2"
-                                                                            },
-                                                                            {
-                                                                                "attributes": {
-                                                                                    "type": "uint256",
-                                                                                    "value": "_value"
-                                                                                },
-                                                                                "id": 112,
-                                                                                "name": "Identifier",
-                                                                                "src": "1583:6:2"
-                                                                            }
-                                                                        ],
-                                                                        "id": 113,
-                                                                        "name": "FunctionCall",
-                                                                        "src": "1562:28:2"
-                                                                    }
-                                                                ],
-                                                                "id": 114,
-                                                                "name": "ExpressionStatement",
-                                                                "src": "1562:28:2"
-                                                            },
-                                                            {
-                                                                "children": [
-                                                                    {
-                                                                        "attributes": {
-                                                                            "hexvalue": "74727565",
-                                                                            "subdenomination": null,
-                                                                            "token": "true",
-                                                                            "type": "bool",
-                                                                            "value": "true"
-                                                                        },
-                                                                        "id": 115,
-                                                                        "name": "Literal",
-                                                                        "src": "1611:4:2"
-                                                                    }
-                                                                ],
-                                                                "id": 116,
-                                                                "name": "Return",
-                                                                "src": "1604:11:2"
-                                                            }
-                                                        ],
-                                                        "id": 117,
-                                                        "name": "Block",
-                                                        "src": "1364:262:2"
-                                                    },
-                                                    {
-                                                        "children": [
-                                                            {
-                                                                "children": [
-                                                                    {
-                                                                        "attributes": {
-                                                                            "hexvalue": "66616c7365",
-                                                                            "subdenomination": null,
-                                                                            "token": "false",
-                                                                            "type": "bool",
-                                                                            "value": "false"
-                                                                        },
-                                                                        "id": 118,
-                                                                        "name": "Literal",
-                                                                        "src": "1653:5:2"
-                                                                    }
-                                                                ],
-                                                                "id": 119,
-                                                                "name": "Return",
-                                                                "src": "1646:12:2"
-                                                            }
-                                                        ],
-                                                        "id": 120,
-                                                        "name": "Block",
-                                                        "src": "1632:37:2"
-                                                    }
-                                                ],
-                                                "id": 121,
-                                                "name": "IfStatement",
-                                                "src": "1234:435:2"
-                                            }
-                                        ],
-                                        "id": 122,
-                                        "name": "Block",
-                                        "src": "1171:504:2"
-                                    }
-                                ],
-                                "id": 123,
-                                "name": "FunctionDefinition",
-                                "src": "1066:609:2"
-                            }
-                        ],
-                        "id": 124,
-                        "name": "ContractDefinition",
-                        "src": "686:991:2"
-                    }
-                ],
-                "name": "SourceUnit"
-            }
-        },
-        "2.0.0/tokens/ZRXToken/ZRXToken.sol": {
-            "id": 3,
-            "legacyAST": {
-                "children": [
-                    {
-                        "attributes": {
-                            "literals": ["solidity", "0.4", ".11"]
-                        },
-                        "id": 1,
-                        "name": "PragmaDirective",
-                        "src": "580:23:3"
-                    },
-                    {
-                        "attributes": {
-                            "file": "../../../1.0.0/UnlimitedAllowanceToken/UnlimitedAllowanceToken_v1.sol"
-                        },
-                        "id": 3,
-                        "name": "ImportDirective",
-                        "src": "650:142:3"
-                    },
-                    {
-                        "attributes": {
-                            "fullyImplemented": true,
-                            "isLibrary": false,
-                            "linearizedBaseContracts": [31, 124, 322, 397],
-                            "name": "ZRXToken"
-                        },
-                        "children": [
-                            {
-                                "children": [
-                                    {
-                                        "attributes": {
-                                            "name": "UnlimitedAllowanceToken"
-                                        },
-                                        "id": 4,
-                                        "name": "UserDefinedTypeName",
-                                        "src": "816:23:3"
-                                    }
-                                ],
-                                "id": 5,
-                                "name": "InheritanceSpecifier",
-                                "src": "816:23:3"
-                            },
-                            {
-                                "attributes": {
-                                    "constant": true,
-                                    "name": "decimals",
-                                    "storageLocation": "default",
-                                    "type": "uint8",
-                                    "visibility": "public"
-                                },
-                                "children": [
-                                    {
-                                        "attributes": {
-                                            "name": "uint8"
-                                        },
-                                        "id": 6,
-                                        "name": "ElementaryTypeName",
-                                        "src": "891:5:3"
-                                    },
-                                    {
-                                        "attributes": {
-                                            "hexvalue": "3138",
-                                            "subdenomination": null,
-                                            "token": null,
-                                            "type": "int_const 18",
-                                            "value": "18"
-                                        },
-                                        "id": 7,
-                                        "name": "Literal",
-                                        "src": "924:2:3"
-                                    }
-                                ],
-                                "id": 8,
-                                "name": "VariableDeclaration",
-                                "src": "891:35:3"
-                            },
-                            {
-                                "attributes": {
-                                    "constant": false,
-                                    "name": "totalSupply",
-                                    "storageLocation": "default",
-                                    "type": "uint256",
-                                    "visibility": "public"
-                                },
-                                "children": [
-                                    {
-                                        "attributes": {
-                                            "name": "uint"
-                                        },
-                                        "id": 9,
-                                        "name": "ElementaryTypeName",
-                                        "src": "932:4:3"
-                                    },
-                                    {
-                                        "attributes": {
-                                            "operator": "**",
-                                            "type": "int_const 1000000000000000000000000000"
-                                        },
-                                        "children": [
-                                            {
-                                                "attributes": {
-                                                    "hexvalue": "3130",
-                                                    "subdenomination": null,
-                                                    "token": null,
-                                                    "type": "int_const 10",
-                                                    "value": "10"
-                                                },
-                                                "id": 10,
-                                                "name": "Literal",
-                                                "src": "958:2:3"
-                                            },
-                                            {
-                                                "attributes": {
-                                                    "hexvalue": "3237",
-                                                    "subdenomination": null,
-                                                    "token": null,
-                                                    "type": "int_const 27",
-                                                    "value": "27"
-                                                },
-                                                "id": 11,
-                                                "name": "Literal",
-                                                "src": "962:2:3"
-                                            }
-                                        ],
-                                        "id": 12,
-                                        "name": "BinaryOperation",
-                                        "src": "958:6:3"
-                                    }
-                                ],
-                                "id": 13,
-                                "name": "VariableDeclaration",
-                                "src": "932:32:3"
-                            },
-                            {
-                                "attributes": {
-                                    "constant": true,
-                                    "name": "name",
-                                    "storageLocation": "default",
-                                    "type": "string memory",
-                                    "visibility": "public"
-                                },
-                                "children": [
-                                    {
-                                        "attributes": {
-                                            "name": "string"
-                                        },
-                                        "id": 14,
-                                        "name": "ElementaryTypeName",
-                                        "src": "1009:6:3"
-                                    },
-                                    {
-                                        "attributes": {
-                                            "hexvalue": "30782050726f746f636f6c20546f6b656e",
-                                            "subdenomination": null,
-                                            "token": null,
-                                            "type": "literal_string \"0x Protocol Token\"",
-                                            "value": "0x Protocol Token"
-                                        },
-                                        "id": 15,
-                                        "name": "Literal",
-                                        "src": "1039:19:3"
-                                    }
-                                ],
-                                "id": 16,
-                                "name": "VariableDeclaration",
-                                "src": "1009:49:3"
-                            },
-                            {
-                                "attributes": {
-                                    "constant": true,
-                                    "name": "symbol",
-                                    "storageLocation": "default",
-                                    "type": "string memory",
-                                    "visibility": "public"
-                                },
-                                "children": [
-                                    {
-                                        "attributes": {
-                                            "name": "string"
-                                        },
-                                        "id": 17,
-                                        "name": "ElementaryTypeName",
-                                        "src": "1064:6:3"
-                                    },
-                                    {
-                                        "attributes": {
-                                            "hexvalue": "5a5258",
-                                            "subdenomination": null,
-                                            "token": null,
-                                            "type": "literal_string \"ZRX\"",
-                                            "value": "ZRX"
-                                        },
-                                        "id": 18,
-                                        "name": "Literal",
-                                        "src": "1096:5:3"
-                                    }
-                                ],
-                                "id": 19,
-                                "name": "VariableDeclaration",
-                                "src": "1064:37:3"
-                            },
-                            {
-                                "attributes": {
-                                    "constant": false,
-                                    "name": "ZRXToken",
-                                    "payable": false,
-                                    "visibility": "public"
-                                },
-                                "children": [
-                                    {
-                                        "children": [],
-                                        "id": 20,
-                                        "name": "ParameterList",
-                                        "src": "1167:2:3"
-                                    },
-                                    {
-                                        "children": [],
-                                        "id": 21,
-                                        "name": "ParameterList",
-                                        "src": "1189:0:3"
-                                    },
-                                    {
-                                        "children": [
-                                            {
-                                                "children": [
-                                                    {
-                                                        "attributes": {
-                                                            "operator": "=",
-                                                            "type": "uint256"
-                                                        },
-                                                        "children": [
-                                                            {
-                                                                "attributes": {
-                                                                    "type": "uint256"
-                                                                },
-                                                                "children": [
-                                                                    {
-                                                                        "attributes": {
-                                                                            "type": "mapping(address => uint256)",
-                                                                            "value": "balances"
-                                                                        },
-                                                                        "id": 22,
-                                                                        "name": "Identifier",
-                                                                        "src": "1199:8:3"
-                                                                    },
-                                                                    {
-                                                                        "attributes": {
-                                                                            "member_name": "sender",
-                                                                            "type": "address"
-                                                                        },
-                                                                        "children": [
-                                                                            {
-                                                                                "attributes": {
-                                                                                    "type": "msg",
-                                                                                    "value": "msg"
-                                                                                },
-                                                                                "id": 23,
-                                                                                "name": "Identifier",
-                                                                                "src": "1208:3:3"
-                                                                            }
-                                                                        ],
-                                                                        "id": 24,
-                                                                        "name": "MemberAccess",
-                                                                        "src": "1208:10:3"
-                                                                    }
-                                                                ],
-                                                                "id": 25,
-                                                                "name": "IndexAccess",
-                                                                "src": "1199:20:3"
-                                                            },
-                                                            {
-                                                                "attributes": {
-                                                                    "type": "uint256",
-                                                                    "value": "totalSupply"
-                                                                },
-                                                                "id": 26,
-                                                                "name": "Identifier",
-                                                                "src": "1222:11:3"
-                                                            }
-                                                        ],
-                                                        "id": 27,
-                                                        "name": "Assignment",
-                                                        "src": "1199:34:3"
-                                                    }
-                                                ],
-                                                "id": 28,
-                                                "name": "ExpressionStatement",
-                                                "src": "1199:34:3"
-                                            }
-                                        ],
-                                        "id": 29,
-                                        "name": "Block",
-                                        "src": "1189:51:3"
-                                    }
-                                ],
-                                "id": 30,
-                                "name": "FunctionDefinition",
-                                "src": "1150:90:3"
-                            }
-                        ],
-                        "id": 31,
-                        "name": "ContractDefinition",
-                        "src": "795:447:3"
-                    }
-                ],
-                "name": "SourceUnit"
-            }
-        }
-    },
-    "sourceCodes": {
-        "1.0.0/ERC20Token/ERC20Token_v1.sol":
-            "pragma solidity ^0.4.11;\n\nimport { Token_v1 as Token } from \"../Token/Token_v1.sol\";\n\ncontract ERC20Token_v1 is Token {\n\n    function transfer(address _to, uint _value) returns (bool) {\n        //Default assumes totalSupply can't be over max (2^256 - 1).\n        if (balances[msg.sender] >= _value && balances[_to] + _value >= balances[_to]) {\n            balances[msg.sender] -= _value;\n            balances[_to] += _value;\n            Transfer(msg.sender, _to, _value);\n            return true;\n        } else { return false; }\n    }\n\n    function transferFrom(address _from, address _to, uint _value) returns (bool) {\n        if (balances[_from] >= _value && allowed[_from][msg.sender] >= _value && balances[_to] + _value >= balances[_to]) {\n            balances[_to] += _value;\n            balances[_from] -= _value;\n            allowed[_from][msg.sender] -= _value;\n            Transfer(_from, _to, _value);\n            return true;\n        } else { return false; }\n    }\n\n    function balanceOf(address _owner) constant returns (uint) {\n        return balances[_owner];\n    }\n\n    function approve(address _spender, uint _value) returns (bool) {\n        allowed[msg.sender][_spender] = _value;\n        Approval(msg.sender, _spender, _value);\n        return true;\n    }\n\n    function allowance(address _owner, address _spender) constant returns (uint) {\n        return allowed[_owner][_spender];\n    }\n\n    mapping (address => uint) balances;\n    mapping (address => mapping (address => uint)) allowed;\n    uint public totalSupply;\n}\n",
-        "1.0.0/Token/Token_v1.sol":
-            "pragma solidity ^0.4.11;\n\ncontract Token_v1 {\n\n    /// @return total amount of tokens\n    function totalSupply() constant returns (uint supply) {}\n\n    /// @param _owner The address from which the balance will be retrieved\n    /// @return The balance\n    function balanceOf(address _owner) constant returns (uint balance) {}\n\n    /// @notice send `_value` token to `_to` from `msg.sender`\n    /// @param _to The address of the recipient\n    /// @param _value The amount of token to be transferred\n    /// @return Whether the transfer was successful or not\n    function transfer(address _to, uint _value) returns (bool success) {}\n\n    /// @notice send `_value` token to `_to` from `_from` on the condition it is approved by `_from`\n    /// @param _from The address of the sender\n    /// @param _to The address of the recipient\n    /// @param _value The amount of token to be transferred\n    /// @return Whether the transfer was successful or not\n    function transferFrom(address _from, address _to, uint _value) returns (bool success) {}\n\n    /// @notice `msg.sender` approves `_addr` to spend `_value` tokens\n    /// @param _spender The address of the account able to transfer the tokens\n    /// @param _value The amount of wei to be approved for transfer\n    /// @return Whether the approval was successful or not\n    function approve(address _spender, uint _value) returns (bool success) {}\n\n    /// @param _owner The address of the account owning tokens\n    /// @param _spender The address of the account able to transfer the tokens\n    /// @return Amount of remaining tokens allowed to spent\n    function allowance(address _owner, address _spender) constant returns (uint remaining) {}\n\n    event Transfer(address indexed _from, address indexed _to, uint _value);\n    event Approval(address indexed _owner, address indexed _spender, uint _value);\n}\n\n",
-        "1.0.0/UnlimitedAllowanceToken/UnlimitedAllowanceToken_v1.sol":
-            "/*\n\n  Copyright 2018 ZeroEx Intl.\n\n  Licensed under the Apache License, Version 2.0 (the \"License\");\n  you may not use this file except in compliance with the License.\n  You may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\n  Unless required by applicable law or agreed to in writing, software\n  distributed under the License is distributed on an \"AS IS\" BASIS,\n  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n  See the License for the specific language governing permissions and\n  limitations under the License.\n\n*/\n\npragma solidity ^0.4.11;\n\nimport { ERC20Token_v1 as ERC20Token } from \"../ERC20Token/ERC20Token_v1.sol\";\n\ncontract UnlimitedAllowanceToken_v1 is ERC20Token {\n\n    uint constant MAX_UINT = 2**256 - 1;\n\n    /// @dev ERC20 transferFrom, modified such that an allowance of MAX_UINT represents an unlimited allowance.\n    /// @param _from Address to transfer from.\n    /// @param _to Address to transfer to.\n    /// @param _value Amount to transfer.\n    /// @return Success of transfer.\n    function transferFrom(address _from, address _to, uint _value)\n        public\n        returns (bool)\n    {\n        uint allowance = allowed[_from][msg.sender];\n        if (balances[_from] >= _value\n            && allowance >= _value\n            && balances[_to] + _value >= balances[_to]\n        ) {\n            balances[_to] += _value;\n            balances[_from] -= _value;\n            if (allowance < MAX_UINT) {\n                allowed[_from][msg.sender] -= _value;\n            }\n            Transfer(_from, _to, _value);\n            return true;\n        } else {\n            return false;\n        }\n    }\n}\n",
-        "2.0.0/tokens/ZRXToken/ZRXToken.sol":
-            "/*\n\n  Copyright 2018 ZeroEx Intl.\n\n  Licensed under the Apache License, Version 2.0 (the \"License\");\n  you may not use this file except in compliance with the License.\n  You may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\n  Unless required by applicable law or agreed to in writing, software\n  distributed under the License is distributed on an \"AS IS\" BASIS,\n  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n  See the License for the specific language governing permissions and\n  limitations under the License.\n\n*/\n\npragma solidity 0.4.11;\n\n// solhint-disable-next-line max-line-length\nimport { UnlimitedAllowanceToken_v1 as UnlimitedAllowanceToken } from \"../../../1.0.0/UnlimitedAllowanceToken/UnlimitedAllowanceToken_v1.sol\";\n\n\ncontract ZRXToken is UnlimitedAllowanceToken {\n\n    // solhint-disable const-name-snakecase\n    uint8 constant public decimals = 18;\n    uint public totalSupply = 10**27; // 1 billion tokens, 18 decimal places\n    string constant public name = \"0x Protocol Token\";\n    string constant public symbol = \"ZRX\";\n    // solhint-enableconst-name-snakecase\n\n    function ZRXToken()\n        public\n    {\n        balances[msg.sender] = totalSupply;\n    }\n}\n"
-    },
-    "sourceTreeHashHex": "0xbcce67d129fe53ddb9717b4f567b33108c41a4f4324aa47ac609037e41f5b95d",
-    "compiler": {
-        "name": "solc",
-        "version": "soljson-v0.4.11+commit.68ef5810.js",
-        "settings": {
-            "optimizer": {
-                "enabled": true,
-                "runs": 1000000
-            },
-            "outputSelection": {
-                "*": {
-                    "*": [
-                        "abi",
-                        "evm.bytecode.object",
-                        "evm.bytecode.sourceMap",
-                        "evm.deployedBytecode.object",
-                        "evm.deployedBytecode.sourceMap"
-                    ]
-                }
-            }
-        }
-    },
-    "networks": {
-        "50": {
-            "address": "0x871dd7c2b4b25e1aa18728e9d5f2af4c4e431f5c",
-            "links": {},
-            "constructorArgs": "[]"
-        }
-    }
-}
+	"schemaVersion": "2.0.0",
+	"contractName": "ZRXToken",
+	"compilerOutput": {
+		"abi": [
+			{
+				"constant": true,
+				"inputs": [],
+				"name": "name",
+				"outputs": [
+					{
+						"name": "",
+						"type": "string"
+					}
+				],
+				"payable": false,
+				"type": "function"
+			},
+			{
+				"constant": false,
+				"inputs": [
+					{
+						"name": "_spender",
+						"type": "address"
+					},
+					{
+						"name": "_value",
+						"type": "uint256"
+					}
+				],
+				"name": "approve",
+				"outputs": [
+					{
+						"name": "",
+						"type": "bool"
+					}
+				],
+				"payable": false,
+				"type": "function"
+			},
+			{
+				"constant": true,
+				"inputs": [],
+				"name": "totalSupply",
+				"outputs": [
+					{
+						"name": "",
+						"type": "uint256"
+					}
+				],
+				"payable": false,
+				"type": "function"
+			},
+			{
+				"constant": false,
+				"inputs": [
+					{
+						"name": "_from",
+						"type": "address"
+					},
+					{
+						"name": "_to",
+						"type": "address"
+					},
+					{
+						"name": "_value",
+						"type": "uint256"
+					}
+				],
+				"name": "transferFrom",
+				"outputs": [
+					{
+						"name": "",
+						"type": "bool"
+					}
+				],
+				"payable": false,
+				"type": "function"
+			},
+			{
+				"constant": true,
+				"inputs": [],
+				"name": "decimals",
+				"outputs": [
+					{
+						"name": "",
+						"type": "uint8"
+					}
+				],
+				"payable": false,
+				"type": "function"
+			},
+			{
+				"constant": true,
+				"inputs": [
+					{
+						"name": "_owner",
+						"type": "address"
+					}
+				],
+				"name": "balanceOf",
+				"outputs": [
+					{
+						"name": "",
+						"type": "uint256"
+					}
+				],
+				"payable": false,
+				"type": "function"
+			},
+			{
+				"constant": true,
+				"inputs": [],
+				"name": "symbol",
+				"outputs": [
+					{
+						"name": "",
+						"type": "string"
+					}
+				],
+				"payable": false,
+				"type": "function"
+			},
+			{
+				"constant": false,
+				"inputs": [
+					{
+						"name": "_to",
+						"type": "address"
+					},
+					{
+						"name": "_value",
+						"type": "uint256"
+					}
+				],
+				"name": "transfer",
+				"outputs": [
+					{
+						"name": "",
+						"type": "bool"
+					}
+				],
+				"payable": false,
+				"type": "function"
+			},
+			{
+				"constant": true,
+				"inputs": [
+					{
+						"name": "_owner",
+						"type": "address"
+					},
+					{
+						"name": "_spender",
+						"type": "address"
+					}
+				],
+				"name": "allowance",
+				"outputs": [
+					{
+						"name": "",
+						"type": "uint256"
+					}
+				],
+				"payable": false,
+				"type": "function"
+			},
+			{
+				"inputs": [],
+				"payable": false,
+				"type": "constructor"
+			},
+			{
+				"anonymous": false,
+				"inputs": [
+					{
+						"indexed": true,
+						"name": "_from",
+						"type": "address"
+					},
+					{
+						"indexed": true,
+						"name": "_to",
+						"type": "address"
+					},
+					{
+						"indexed": false,
+						"name": "_value",
+						"type": "uint256"
+					}
+				],
+				"name": "Transfer",
+				"type": "event"
+			},
+			{
+				"anonymous": false,
+				"inputs": [
+					{
+						"indexed": true,
+						"name": "_owner",
+						"type": "address"
+					},
+					{
+						"indexed": true,
+						"name": "_spender",
+						"type": "address"
+					},
+					{
+						"indexed": false,
+						"name": "_value",
+						"type": "uint256"
+					}
+				],
+				"name": "Approval",
+				"type": "event"
+			}
+		],
+		"devdoc": {
+			"methods": {
+				"transferFrom(address,address,uint256)": {
+					"details": "ERC20 transferFrom, modified such that an allowance of MAX_UINT represents an unlimited allowance.",
+					"params": {
+						"_from": "Address to transfer from.",
+						"_to": "Address to transfer to.",
+						"_value": "Amount to transfer."
+					},
+					"return": "Success of transfer."
+				}
+			}
+		},
+		"evm": {
+			"assembly": "    /* \"2.0.0/tokens/ZRXToken/ZRXToken.sol\":795:1242  contract ZRXToken is UnlimitedAllowanceToken {... */\n  mstore(0x40, 0x60)\n    /* \"2.0.0/tokens/ZRXToken/ZRXToken.sol\":958:964  10**27 */\n  0x33b2e3c9fd0803ce8000000\n    /* \"2.0.0/tokens/ZRXToken/ZRXToken.sol\":932:964  uint public totalSupply = 10**27 */\n  0x3\n  sstore\n    /* \"2.0.0/tokens/ZRXToken/ZRXToken.sol\":1150:1240  function ZRXToken()... */\n  jumpi(tag_1, iszero(callvalue))\n  invalid\ntag_1:\ntag_2:\n    /* \"2.0.0/tokens/ZRXToken/ZRXToken.sol\":1222:1233  totalSupply */\n  sload(0x3)\n  sub(exp(0x2, 0xa0), 0x1)\n    /* \"2.0.0/tokens/ZRXToken/ZRXToken.sol\":1208:1218  msg.sender */\n  caller\n    /* \"2.0.0/tokens/ZRXToken/ZRXToken.sol\":1199:1219  balances[msg.sender] */\n  and\n    /* \"2.0.0/tokens/ZRXToken/ZRXToken.sol\":1199:1207  balances */\n  0x0\n    /* \"2.0.0/tokens/ZRXToken/ZRXToken.sol\":1199:1219  balances[msg.sender] */\n  swap1\n  dup2\n  mstore\n  0x20\n  dup2\n  swap1\n  mstore\n  0x40\n  swap1\n  sha3\n    /* \"2.0.0/tokens/ZRXToken/ZRXToken.sol\":1199:1233  balances[msg.sender] = totalSupply */\n  sstore\n    /* \"2.0.0/tokens/ZRXToken/ZRXToken.sol\":1150:1240  function ZRXToken()... */\ntag_3:\n    /* \"2.0.0/tokens/ZRXToken/ZRXToken.sol\":795:1242  contract ZRXToken is UnlimitedAllowanceToken {... */\ntag_4:\n  dataSize(sub_0)\n  dup1\n  dataOffset(sub_0)\n  0x0\n  codecopy\n  0x0\n  return\nstop\n\nsub_0: assembly {\n        /* \"2.0.0/tokens/ZRXToken/ZRXToken.sol\":795:1242  contract ZRXToken is UnlimitedAllowanceToken {... */\n      mstore(0x40, 0x60)\n      jumpi(tag_1, iszero(calldatasize))\n      and(div(calldataload(0x0), 0x100000000000000000000000000000000000000000000000000000000), 0xffffffff)\n      0x6fdde03\n      dup2\n      eq\n      tag_2\n      jumpi\n      dup1\n      0x95ea7b3\n      eq\n      tag_3\n      jumpi\n      dup1\n      0x18160ddd\n      eq\n      tag_4\n      jumpi\n      dup1\n      0x23b872dd\n      eq\n      tag_5\n      jumpi\n      dup1\n      0x313ce567\n      eq\n      tag_6\n      jumpi\n      dup1\n      0x70a08231\n      eq\n      tag_7\n      jumpi\n      dup1\n      0x95d89b41\n      eq\n      tag_8\n      jumpi\n      dup1\n      0xa9059cbb\n      eq\n      tag_9\n      jumpi\n      dup1\n      0xdd62ed3e\n      eq\n      tag_10\n      jumpi\n    tag_1:\n      invalid\n        /* \"2.0.0/tokens/ZRXToken/ZRXToken.sol\":1009:1058  string constant public name = \"0x Protocol Token\" */\n    tag_2:\n      jumpi(tag_11, iszero(callvalue))\n      invalid\n    tag_11:\n      tag_12\n      jump(tag_13)\n    tag_12:\n      0x40\n      dup1\n      mload\n      0x20\n      dup1\n      dup3\n      mstore\n      dup4\n      mload\n      dup2\n      dup4\n      add\n      mstore\n      dup4\n      mload\n      swap2\n      swap3\n      dup4\n      swap3\n      swap1\n      dup4\n      add\n      swap2\n      dup6\n      add\n      swap1\n      dup1\n      dup4\n      dup4\n        /* \"--CODEGEN--\":18:20   */\n      dup3\n      iszero\n        /* \"--CODEGEN--\":13:16   */\n      tag_14\n        /* \"--CODEGEN--\":7:12   */\n      jumpi\n        /* \"--CODEGEN--\":32:37   */\n    tag_15:\n        /* \"--CODEGEN--\":59:62   */\n      dup1\n        /* \"--CODEGEN--\":53:58   */\n      mload\n        /* \"--CODEGEN--\":48:51   */\n      dup3\n        /* \"--CODEGEN--\":41:47   */\n      mstore\n        /* \"--CODEGEN--\":93:95   */\n      0x20\n        /* \"--CODEGEN--\":88:91   */\n      dup4\n        /* \"--CODEGEN--\":85:87   */\n      gt\n        /* \"--CODEGEN--\":78:84   */\n      iszero\n        /* \"--CODEGEN--\":73:76   */\n      tag_14\n        /* \"--CODEGEN--\":67:72   */\n      jumpi\n        /* \"--CODEGEN--\":152:155   */\n      0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0\n      swap1\n      swap3\n      add\n      swap2\n        /* \"--CODEGEN--\":117:119   */\n      0x20\n        /* \"--CODEGEN--\":108:111   */\n      swap2\n      dup3\n      add\n      swap2\n        /* \"--CODEGEN--\":130:133   */\n      add\n        /* \"--CODEGEN--\":172:177   */\n      tag_15\n        /* \"--CODEGEN--\":167:171   */\n      jump\n        /* \"--CODEGEN--\":181:184   */\n    tag_14:\n        /* \"--CODEGEN--\":3:189   */\n      pop\n      pop\n      pop\n      swap1\n      pop\n      swap1\n      dup2\n      add\n      swap1\n      0x1f\n      and\n      dup1\n      iszero\n      tag_16\n      jumpi\n      dup1\n      dup3\n      sub\n      dup1\n      mload\n      0x1\n      dup4\n      0x20\n      sub\n      0x100\n      exp\n      sub\n      not\n      and\n      dup2\n      mstore\n      0x20\n      add\n      swap2\n      pop\n    tag_16:\n      pop\n      swap3\n      pop\n      pop\n      pop\n      mload(0x40)\n      dup1\n      swap2\n      sub\n      swap1\n      return\n        /* \"1.0.0/ERC20Token/ERC20Token_v1.sol\":1087:1274   */\n    tag_3:\n      jumpi(tag_17, iszero(callvalue))\n      invalid\n    tag_17:\n      tag_18\n      and(calldataload(0x4), 0xffffffffffffffffffffffffffffffffffffffff)\n      calldataload(0x24)\n      jump(tag_19)\n    tag_18:\n      0x40\n      dup1\n      mload\n      swap2\n      iszero\n      iszero\n      dup3\n      mstore\n      mload\n      swap1\n      dup2\n      swap1\n      sub\n      0x20\n      add\n      swap1\n      return\n        /* \"2.0.0/tokens/ZRXToken/ZRXToken.sol\":932:964  uint public totalSupply = 10**27 */\n    tag_4:\n      jumpi(tag_20, iszero(callvalue))\n      invalid\n    tag_20:\n      tag_21\n      jump(tag_22)\n    tag_21:\n      0x40\n      dup1\n      mload\n      swap2\n      dup3\n      mstore\n      mload\n      swap1\n      dup2\n      swap1\n      sub\n      0x20\n      add\n      swap1\n      return\n        /* \"1.0.0/UnlimitedAllowanceToken/UnlimitedAllowanceToken_v1.sol\":1066:1675   */\n    tag_5:\n      jumpi(tag_23, iszero(callvalue))\n      invalid\n    tag_23:\n      tag_18\n      0xffffffffffffffffffffffffffffffffffffffff\n      calldataload(0x4)\n      dup2\n      and\n      swap1\n      calldataload(0x24)\n      and\n      calldataload(0x44)\n      jump(tag_25)\n    tag_24:\n      0x40\n      dup1\n      mload\n      swap2\n      iszero\n      iszero\n      dup3\n      mstore\n      mload\n      swap1\n      dup2\n      swap1\n      sub\n      0x20\n      add\n      swap1\n      return\n        /* \"2.0.0/tokens/ZRXToken/ZRXToken.sol\":891:926  uint8 constant public decimals = 18 */\n    tag_6:\n      jumpi(tag_26, iszero(callvalue))\n      invalid\n    tag_26:\n      tag_27\n      jump(tag_28)\n    tag_27:\n      0x40\n      dup1\n      mload\n      0xff\n      swap1\n      swap3\n      and\n      dup3\n      mstore\n      mload\n      swap1\n      dup2\n      swap1\n      sub\n      0x20\n      add\n      swap1\n      return\n        /* \"1.0.0/ERC20Token/ERC20Token_v1.sol\":982:1081   */\n    tag_7:\n      jumpi(tag_29, iszero(callvalue))\n      invalid\n    tag_29:\n      tag_21\n      and(calldataload(0x4), 0xffffffffffffffffffffffffffffffffffffffff)\n      jump(tag_31)\n    tag_30:\n      0x40\n      dup1\n      mload\n      swap2\n      dup3\n      mstore\n      mload\n      swap1\n      dup2\n      swap1\n      sub\n      0x20\n      add\n      swap1\n      return\n        /* \"2.0.0/tokens/ZRXToken/ZRXToken.sol\":1064:1101  string constant public symbol = \"ZRX\" */\n    tag_8:\n      jumpi(tag_32, iszero(callvalue))\n      invalid\n    tag_32:\n      tag_12\n      jump(tag_34)\n    tag_33:\n      0x40\n      dup1\n      mload\n      0x20\n      dup1\n      dup3\n      mstore\n      dup4\n      mload\n      dup2\n      dup4\n      add\n      mstore\n      dup4\n      mload\n      swap2\n      swap3\n      dup4\n      swap3\n      swap1\n      dup4\n      add\n      swap2\n      dup6\n      add\n      swap1\n      dup1\n      dup4\n      dup4\n        /* \"--CODEGEN--\":18:20   */\n      dup3\n      iszero\n        /* \"--CODEGEN--\":13:16   */\n      tag_14\n        /* \"--CODEGEN--\":7:12   */\n      jumpi\n        /* \"--CODEGEN--\":32:37   */\n    tag_36:\n        /* \"--CODEGEN--\":59:62   */\n      dup1\n        /* \"--CODEGEN--\":53:58   */\n      mload\n        /* \"--CODEGEN--\":48:51   */\n      dup3\n        /* \"--CODEGEN--\":41:47   */\n      mstore\n        /* \"--CODEGEN--\":93:95   */\n      0x20\n        /* \"--CODEGEN--\":88:91   */\n      dup4\n        /* \"--CODEGEN--\":85:87   */\n      gt\n        /* \"--CODEGEN--\":78:84   */\n      iszero\n        /* \"--CODEGEN--\":73:76   */\n      tag_14\n        /* \"--CODEGEN--\":67:72   */\n      jumpi\n        /* \"--CODEGEN--\":152:155   */\n      0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0\n      swap1\n      swap3\n      add\n      swap2\n        /* \"--CODEGEN--\":117:119   */\n      0x20\n        /* \"--CODEGEN--\":108:111   */\n      swap2\n      dup3\n      add\n      swap2\n        /* \"--CODEGEN--\":130:133   */\n      add\n        /* \"--CODEGEN--\":172:177   */\n      tag_15\n        /* \"--CODEGEN--\":167:171   */\n      jump\n        /* \"--CODEGEN--\":181:184   */\n    tag_35:\n        /* \"--CODEGEN--\":3:189   */\n      pop\n      pop\n      pop\n      swap1\n      pop\n      swap1\n      dup2\n      add\n      swap1\n      0x1f\n      and\n      dup1\n      iszero\n      tag_16\n      jumpi\n      dup1\n      dup3\n      sub\n      dup1\n      mload\n      0x1\n      dup4\n      0x20\n      sub\n      0x100\n      exp\n      sub\n      not\n      and\n      dup2\n      mstore\n      0x20\n      add\n      swap2\n      pop\n    tag_37:\n      pop\n      swap3\n      pop\n      pop\n      pop\n      mload(0x40)\n      dup1\n      swap2\n      sub\n      swap1\n      return\n        /* \"1.0.0/ERC20Token/ERC20Token_v1.sol\":125:535   */\n    tag_9:\n      jumpi(tag_38, iszero(callvalue))\n      invalid\n    tag_38:\n      tag_18\n      and(calldataload(0x4), 0xffffffffffffffffffffffffffffffffffffffff)\n      calldataload(0x24)\n      jump(tag_40)\n    tag_39:\n      0x40\n      dup1\n      mload\n      swap2\n      iszero\n      iszero\n      dup3\n      mstore\n      mload\n      swap1\n      dup2\n      swap1\n      sub\n      0x20\n      add\n      swap1\n      return\n        /* \"1.0.0/ERC20Token/ERC20Token_v1.sol\":1280:1406   */\n    tag_10:\n      jumpi(tag_41, iszero(callvalue))\n      invalid\n    tag_41:\n      tag_21\n      0xffffffffffffffffffffffffffffffffffffffff\n      calldataload(0x4)\n      dup2\n      and\n      swap1\n      calldataload(0x24)\n      and\n      jump(tag_43)\n    tag_42:\n      0x40\n      dup1\n      mload\n      swap2\n      dup3\n      mstore\n      mload\n      swap1\n      dup2\n      swap1\n      sub\n      0x20\n      add\n      swap1\n      return\n        /* \"2.0.0/tokens/ZRXToken/ZRXToken.sol\":1009:1058  string constant public name = \"0x Protocol Token\" */\n    tag_13:\n      0x40\n      dup1\n      mload\n      dup1\n      dup3\n      add\n      swap1\n      swap2\n      mstore\n      0x11\n      dup2\n      mstore\n      0x30782050726f746f636f6c20546f6b656e000000000000000000000000000000\n      0x20\n      dup3\n      add\n      mstore\n      dup2\n      jump\t// out\n        /* \"1.0.0/ERC20Token/ERC20Token_v1.sol\":1087:1274   */\n    tag_19:\n        /* \"1.0.0/ERC20Token/ERC20Token_v1.sol\":1160:1179   */\n      0xffffffffffffffffffffffffffffffffffffffff\n        /* \"1.0.0/ERC20Token/ERC20Token_v1.sol\":1168:1178   */\n      caller\n        /* \"1.0.0/ERC20Token/ERC20Token_v1.sol\":1160:1179   */\n      dup2\n      and\n        /* \"1.0.0/ERC20Token/ERC20Token_v1.sol\":1144:1148   */\n      0x0\n        /* \"1.0.0/ERC20Token/ERC20Token_v1.sol\":1160:1179   */\n      dup2\n      dup2\n      mstore\n        /* \"1.0.0/ERC20Token/ERC20Token_v1.sol\":1160:1167   */\n      0x1\n        /* \"1.0.0/ERC20Token/ERC20Token_v1.sol\":1160:1179   */\n      0x20\n      swap1\n      dup2\n      mstore\n      0x40\n      dup1\n      dup4\n      sha3\n        /* \"1.0.0/ERC20Token/ERC20Token_v1.sol\":1160:1189   */\n      swap5\n      dup8\n      and\n      dup1\n      dup5\n      mstore\n      swap5\n      dup3\n      mstore\n      dup1\n      dup4\n      sha3\n        /* \"1.0.0/ERC20Token/ERC20Token_v1.sol\":1160:1198   */\n      dup7\n      swap1\n      sstore\n        /* \"1.0.0/ERC20Token/ERC20Token_v1.sol\":1208:1246   */\n      dup1\n      mload\n      dup7\n      dup2\n      mstore\n      swap1\n      mload\n        /* \"1.0.0/ERC20Token/ERC20Token_v1.sol\":1144:1148   */\n      swap3\n      swap5\n        /* \"1.0.0/ERC20Token/ERC20Token_v1.sol\":1160:1189   */\n      swap4\n        /* \"1.0.0/ERC20Token/ERC20Token_v1.sol\":1160:1179   */\n      swap3\n        /* \"1.0.0/ERC20Token/ERC20Token_v1.sol\":1208:1246   */\n      0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925\n      swap3\n      swap2\n      dup2\n      swap1\n      sub\n      swap1\n      swap2\n      add\n      swap1\n      log3\n      pop\n        /* \"1.0.0/ERC20Token/ERC20Token_v1.sol\":1263:1267   */\n      0x1\n        /* \"1.0.0/ERC20Token/ERC20Token_v1.sol\":1087:1274   */\n    tag_44:\n      swap3\n      swap2\n      pop\n      pop\n      jump\t// out\n        /* \"2.0.0/tokens/ZRXToken/ZRXToken.sol\":932:964  uint public totalSupply = 10**27 */\n    tag_22:\n      sload(0x3)\n      dup2\n      jump\t// out\n        /* \"1.0.0/UnlimitedAllowanceToken/UnlimitedAllowanceToken_v1.sol\":1066:1675   */\n    tag_25:\n        /* \"1.0.0/UnlimitedAllowanceToken/UnlimitedAllowanceToken_v1.sol\":1198:1212   */\n      0xffffffffffffffffffffffffffffffffffffffff\n      dup1\n      dup5\n      and\n        /* \"1.0.0/UnlimitedAllowanceToken/UnlimitedAllowanceToken_v1.sol\":1161:1165   */\n      0x0\n        /* \"1.0.0/UnlimitedAllowanceToken/UnlimitedAllowanceToken_v1.sol\":1198:1212   */\n      dup2\n      dup2\n      mstore\n        /* \"1.0.0/UnlimitedAllowanceToken/UnlimitedAllowanceToken_v1.sol\":1198:1205   */\n      0x1\n        /* \"1.0.0/UnlimitedAllowanceToken/UnlimitedAllowanceToken_v1.sol\":1198:1212   */\n      0x20\n      swap1\n      dup2\n      mstore\n      0x40\n      dup1\n      dup4\n      sha3\n        /* \"1.0.0/UnlimitedAllowanceToken/UnlimitedAllowanceToken_v1.sol\":1213:1223   */\n      caller\n        /* \"1.0.0/UnlimitedAllowanceToken/UnlimitedAllowanceToken_v1.sol\":1198:1224   */\n      swap1\n      swap6\n      and\n      dup4\n      mstore\n      swap4\n      dup2\n      mstore\n      dup4\n      dup3\n      sha3\n      sload\n        /* \"1.0.0/UnlimitedAllowanceToken/UnlimitedAllowanceToken_v1.sol\":1238:1253   */\n      swap3\n      dup3\n      mstore\n      dup2\n      swap1\n      mstore\n      swap2\n      dup3\n      sha3\n      sload\n        /* \"1.0.0/UnlimitedAllowanceToken/UnlimitedAllowanceToken_v1.sol\":1238:1263   */\n      dup4\n      swap1\n      lt\n      dup1\n      iszero\n      swap1\n        /* \"1.0.0/UnlimitedAllowanceToken/UnlimitedAllowanceToken_v1.sol\":1238:1298   */\n      tag_46\n      jumpi\n      pop\n        /* \"1.0.0/UnlimitedAllowanceToken/UnlimitedAllowanceToken_v1.sol\":1292:1298   */\n      dup3\n        /* \"1.0.0/UnlimitedAllowanceToken/UnlimitedAllowanceToken_v1.sol\":1279:1288   */\n      dup2\n        /* \"1.0.0/UnlimitedAllowanceToken/UnlimitedAllowanceToken_v1.sol\":1279:1298   */\n      lt\n      iszero\n        /* \"1.0.0/UnlimitedAllowanceToken/UnlimitedAllowanceToken_v1.sol\":1238:1298   */\n    tag_46:\n        /* \"1.0.0/UnlimitedAllowanceToken/UnlimitedAllowanceToken_v1.sol\":1238:1353   */\n      dup1\n      iszero\n      tag_47\n      jumpi\n      pop\n        /* \"1.0.0/UnlimitedAllowanceToken/UnlimitedAllowanceToken_v1.sol\":1340:1353   */\n      0xffffffffffffffffffffffffffffffffffffffff\n      dup5\n      and\n        /* \"1.0.0/UnlimitedAllowanceToken/UnlimitedAllowanceToken_v1.sol\":1340:1348   */\n      0x0\n        /* \"1.0.0/UnlimitedAllowanceToken/UnlimitedAllowanceToken_v1.sol\":1340:1353   */\n      swap1\n      dup2\n      mstore\n      0x20\n      dup2\n      swap1\n      mstore\n      0x40\n      swap1\n      sha3\n      sload\n        /* \"1.0.0/UnlimitedAllowanceToken/UnlimitedAllowanceToken_v1.sol\":1314:1336   */\n      dup4\n      dup2\n      add\n        /* \"1.0.0/UnlimitedAllowanceToken/UnlimitedAllowanceToken_v1.sol\":1314:1353   */\n      lt\n      iszero\n        /* \"1.0.0/UnlimitedAllowanceToken/UnlimitedAllowanceToken_v1.sol\":1238:1353   */\n    tag_47:\n        /* \"1.0.0/UnlimitedAllowanceToken/UnlimitedAllowanceToken_v1.sol\":1234:1669   */\n      iszero\n      tag_48\n      jumpi\n        /* \"1.0.0/UnlimitedAllowanceToken/UnlimitedAllowanceToken_v1.sol\":1378:1391   */\n      0xffffffffffffffffffffffffffffffffffffffff\n      dup1\n      dup6\n      and\n        /* \"1.0.0/UnlimitedAllowanceToken/UnlimitedAllowanceToken_v1.sol\":1378:1386   */\n      0x0\n        /* \"1.0.0/UnlimitedAllowanceToken/UnlimitedAllowanceToken_v1.sol\":1378:1391   */\n      swap1\n      dup2\n      mstore\n      0x20\n      dup2\n      swap1\n      mstore\n      0x40\n      dup1\n      dup3\n      sha3\n        /* \"1.0.0/UnlimitedAllowanceToken/UnlimitedAllowanceToken_v1.sol\":1378:1401   */\n      dup1\n      sload\n      dup8\n      add\n      swap1\n      sstore\n        /* \"1.0.0/UnlimitedAllowanceToken/UnlimitedAllowanceToken_v1.sol\":1415:1430   */\n      swap2\n      dup8\n      and\n      dup2\n      mstore\n      sha3\n        /* \"1.0.0/UnlimitedAllowanceToken/UnlimitedAllowanceToken_v1.sol\":1415:1440   */\n      dup1\n      sload\n      dup5\n      swap1\n      sub\n      swap1\n      sstore\n        /* \"1.0.0/UnlimitedAllowanceToken/UnlimitedAllowanceToken_v1.sol\":768:778   */\n      0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n        /* \"1.0.0/UnlimitedAllowanceToken/UnlimitedAllowanceToken_v1.sol\":1458:1478   */\n      dup2\n      lt\n        /* \"1.0.0/UnlimitedAllowanceToken/UnlimitedAllowanceToken_v1.sol\":1454:1549   */\n      iszero\n      tag_49\n      jumpi\n        /* \"1.0.0/UnlimitedAllowanceToken/UnlimitedAllowanceToken_v1.sol\":1498:1512   */\n      0xffffffffffffffffffffffffffffffffffffffff\n      dup1\n      dup7\n      and\n      0x0\n      swap1\n      dup2\n      mstore\n        /* \"1.0.0/UnlimitedAllowanceToken/UnlimitedAllowanceToken_v1.sol\":1498:1505   */\n      0x1\n        /* \"1.0.0/UnlimitedAllowanceToken/UnlimitedAllowanceToken_v1.sol\":1498:1512   */\n      0x20\n      swap1\n      dup2\n      mstore\n      0x40\n      dup1\n      dup4\n      sha3\n        /* \"1.0.0/UnlimitedAllowanceToken/UnlimitedAllowanceToken_v1.sol\":1513:1523   */\n      caller\n        /* \"1.0.0/UnlimitedAllowanceToken/UnlimitedAllowanceToken_v1.sol\":1498:1524   */\n      swap1\n      swap5\n      and\n      dup4\n      mstore\n      swap3\n      swap1\n      mstore\n      sha3\n        /* \"1.0.0/UnlimitedAllowanceToken/UnlimitedAllowanceToken_v1.sol\":1498:1534   */\n      dup1\n      sload\n      dup5\n      swap1\n      sub\n      swap1\n      sstore\n        /* \"1.0.0/UnlimitedAllowanceToken/UnlimitedAllowanceToken_v1.sol\":1454:1549   */\n    tag_49:\n        /* \"1.0.0/UnlimitedAllowanceToken/UnlimitedAllowanceToken_v1.sol\":1578:1581   */\n      dup4\n        /* \"1.0.0/UnlimitedAllowanceToken/UnlimitedAllowanceToken_v1.sol\":1562:1590   */\n      0xffffffffffffffffffffffffffffffffffffffff\n      and\n        /* \"1.0.0/UnlimitedAllowanceToken/UnlimitedAllowanceToken_v1.sol\":1571:1576   */\n      dup6\n        /* \"1.0.0/UnlimitedAllowanceToken/UnlimitedAllowanceToken_v1.sol\":1562:1590   */\n      0xffffffffffffffffffffffffffffffffffffffff\n      and\n      0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef\n        /* \"1.0.0/UnlimitedAllowanceToken/UnlimitedAllowanceToken_v1.sol\":1583:1589   */\n      dup6\n        /* \"1.0.0/UnlimitedAllowanceToken/UnlimitedAllowanceToken_v1.sol\":1562:1590   */\n      mload(0x40)\n      dup1\n      dup3\n      dup2\n      mstore\n      0x20\n      add\n      swap2\n      pop\n      pop\n      mload(0x40)\n      dup1\n      swap2\n      sub\n      swap1\n      log3\n        /* \"1.0.0/UnlimitedAllowanceToken/UnlimitedAllowanceToken_v1.sol\":1611:1615   */\n      0x1\n        /* \"1.0.0/UnlimitedAllowanceToken/UnlimitedAllowanceToken_v1.sol\":1604:1615   */\n      swap2\n      pop\n      jump(tag_50)\n        /* \"1.0.0/UnlimitedAllowanceToken/UnlimitedAllowanceToken_v1.sol\":1234:1669   */\n    tag_48:\n        /* \"1.0.0/UnlimitedAllowanceToken/UnlimitedAllowanceToken_v1.sol\":1653:1658   */\n      0x0\n        /* \"1.0.0/UnlimitedAllowanceToken/UnlimitedAllowanceToken_v1.sol\":1646:1658   */\n      swap2\n      pop\n        /* \"1.0.0/UnlimitedAllowanceToken/UnlimitedAllowanceToken_v1.sol\":1234:1669   */\n    tag_50:\n        /* \"1.0.0/UnlimitedAllowanceToken/UnlimitedAllowanceToken_v1.sol\":1066:1675   */\n    tag_45:\n      pop\n      swap4\n      swap3\n      pop\n      pop\n      pop\n      jump\t// out\n        /* \"2.0.0/tokens/ZRXToken/ZRXToken.sol\":891:926  uint8 constant public decimals = 18 */\n    tag_28:\n        /* \"2.0.0/tokens/ZRXToken/ZRXToken.sol\":924:926  18 */\n      0x12\n        /* \"2.0.0/tokens/ZRXToken/ZRXToken.sol\":891:926  uint8 constant public decimals = 18 */\n      dup2\n      jump\t// out\n        /* \"1.0.0/ERC20Token/ERC20Token_v1.sol\":982:1081   */\n    tag_31:\n        /* \"1.0.0/ERC20Token/ERC20Token_v1.sol\":1058:1074   */\n      0xffffffffffffffffffffffffffffffffffffffff\n      dup2\n      and\n        /* \"1.0.0/ERC20Token/ERC20Token_v1.sol\":1035:1039   */\n      0x0\n        /* \"1.0.0/ERC20Token/ERC20Token_v1.sol\":1058:1074   */\n      swap1\n      dup2\n      mstore\n      0x20\n      dup2\n      swap1\n      mstore\n      0x40\n      swap1\n      sha3\n      sload\n        /* \"1.0.0/ERC20Token/ERC20Token_v1.sol\":982:1081   */\n    tag_51:\n      swap2\n      swap1\n      pop\n      jump\t// out\n        /* \"2.0.0/tokens/ZRXToken/ZRXToken.sol\":1064:1101  string constant public symbol = \"ZRX\" */\n    tag_34:\n      0x40\n      dup1\n      mload\n      dup1\n      dup3\n      add\n      swap1\n      swap2\n      mstore\n      0x3\n      dup2\n      mstore\n      0x5a52580000000000000000000000000000000000000000000000000000000000\n      0x20\n      dup3\n      add\n      mstore\n      dup2\n      jump\t// out\n        /* \"1.0.0/ERC20Token/ERC20Token_v1.sol\":125:535   */\n    tag_40:\n        /* \"1.0.0/ERC20Token/ERC20Token_v1.sol\":267:287   */\n      0xffffffffffffffffffffffffffffffffffffffff\n        /* \"1.0.0/ERC20Token/ERC20Token_v1.sol\":276:286   */\n      caller\n        /* \"1.0.0/ERC20Token/ERC20Token_v1.sol\":267:287   */\n      and\n        /* \"1.0.0/ERC20Token/ERC20Token_v1.sol\":178:182   */\n      0x0\n        /* \"1.0.0/ERC20Token/ERC20Token_v1.sol\":267:287   */\n      swap1\n      dup2\n      mstore\n      0x20\n      dup2\n      swap1\n      mstore\n      0x40\n      dup2\n      sha3\n      sload\n        /* \"1.0.0/ERC20Token/ERC20Token_v1.sol\":267:297   */\n      dup3\n      swap1\n      lt\n      dup1\n      iszero\n      swap1\n        /* \"1.0.0/ERC20Token/ERC20Token_v1.sol\":267:340   */\n      tag_53\n      jumpi\n      pop\n        /* \"1.0.0/ERC20Token/ERC20Token_v1.sol\":327:340   */\n      0xffffffffffffffffffffffffffffffffffffffff\n      dup4\n      and\n        /* \"1.0.0/ERC20Token/ERC20Token_v1.sol\":327:335   */\n      0x0\n        /* \"1.0.0/ERC20Token/ERC20Token_v1.sol\":327:340   */\n      swap1\n      dup2\n      mstore\n      0x20\n      dup2\n      swap1\n      mstore\n      0x40\n      swap1\n      sha3\n      sload\n        /* \"1.0.0/ERC20Token/ERC20Token_v1.sol\":301:323   */\n      dup3\n      dup2\n      add\n        /* \"1.0.0/ERC20Token/ERC20Token_v1.sol\":301:340   */\n      lt\n      iszero\n        /* \"1.0.0/ERC20Token/ERC20Token_v1.sol\":267:340   */\n    tag_53:\n        /* \"1.0.0/ERC20Token/ERC20Token_v1.sol\":263:529   */\n      iszero\n      tag_54\n      jumpi\n        /* \"1.0.0/ERC20Token/ERC20Token_v1.sol\":356:376   */\n      0xffffffffffffffffffffffffffffffffffffffff\n        /* \"1.0.0/ERC20Token/ERC20Token_v1.sol\":365:375   */\n      caller\n        /* \"1.0.0/ERC20Token/ERC20Token_v1.sol\":356:376   */\n      dup2\n      and\n        /* \"1.0.0/ERC20Token/ERC20Token_v1.sol\":356:364   */\n      0x0\n        /* \"1.0.0/ERC20Token/ERC20Token_v1.sol\":356:376   */\n      dup2\n      dup2\n      mstore\n      0x20\n      dup2\n      dup2\n      mstore\n      0x40\n      dup1\n      dup4\n      sha3\n        /* \"1.0.0/ERC20Token/ERC20Token_v1.sol\":356:386   */\n      dup1\n      sload\n      dup9\n      swap1\n      sub\n      swap1\n      sstore\n        /* \"1.0.0/ERC20Token/ERC20Token_v1.sol\":400:413   */\n      swap4\n      dup8\n      and\n      dup1\n      dup4\n      mstore\n      swap2\n      dup5\n      swap1\n      sha3\n        /* \"1.0.0/ERC20Token/ERC20Token_v1.sol\":400:423   */\n      dup1\n      sload\n      dup8\n      add\n      swap1\n      sstore\n        /* \"1.0.0/ERC20Token/ERC20Token_v1.sol\":437:470   */\n      dup4\n      mload\n      dup7\n      dup2\n      mstore\n      swap4\n      mload\n        /* \"1.0.0/ERC20Token/ERC20Token_v1.sol\":400:413   */\n      swap2\n      swap4\n        /* \"1.0.0/ERC20Token/ERC20Token_v1.sol\":437:470   */\n      0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef\n      swap3\n      swap1\n      dup2\n      swap1\n      sub\n      swap1\n      swap2\n      add\n      swap1\n      log3\n      pop\n        /* \"1.0.0/ERC20Token/ERC20Token_v1.sol\":491:495   */\n      0x1\n        /* \"1.0.0/ERC20Token/ERC20Token_v1.sol\":484:495   */\n      jump(tag_44)\n        /* \"1.0.0/ERC20Token/ERC20Token_v1.sol\":263:529   */\n    tag_54:\n      pop\n        /* \"1.0.0/ERC20Token/ERC20Token_v1.sol\":521:526   */\n      0x0\n        /* \"1.0.0/ERC20Token/ERC20Token_v1.sol\":514:526   */\n      jump(tag_44)\n        /* \"1.0.0/ERC20Token/ERC20Token_v1.sol\":263:529   */\n    tag_55:\n        /* \"1.0.0/ERC20Token/ERC20Token_v1.sol\":125:535   */\n    tag_52:\n      swap3\n      swap2\n      pop\n      pop\n      jump\t// out\n        /* \"1.0.0/ERC20Token/ERC20Token_v1.sol\":1280:1406   */\n    tag_43:\n        /* \"1.0.0/ERC20Token/ERC20Token_v1.sol\":1374:1389   */\n      0xffffffffffffffffffffffffffffffffffffffff\n      dup1\n      dup4\n      and\n        /* \"1.0.0/ERC20Token/ERC20Token_v1.sol\":1351:1355   */\n      0x0\n        /* \"1.0.0/ERC20Token/ERC20Token_v1.sol\":1374:1389   */\n      swap1\n      dup2\n      mstore\n        /* \"1.0.0/ERC20Token/ERC20Token_v1.sol\":1374:1381   */\n      0x1\n        /* \"1.0.0/ERC20Token/ERC20Token_v1.sol\":1374:1389   */\n      0x20\n      swap1\n      dup2\n      mstore\n      0x40\n      dup1\n      dup4\n      sha3\n        /* \"1.0.0/ERC20Token/ERC20Token_v1.sol\":1374:1399   */\n      swap4\n      dup6\n      and\n      dup4\n      mstore\n      swap3\n      swap1\n      mstore\n      sha3\n      sload\n        /* \"1.0.0/ERC20Token/ERC20Token_v1.sol\":1280:1406   */\n    tag_56:\n      swap3\n      swap2\n      pop\n      pop\n      jump\t// out\n}\n",
+			"bytecode": {
+				"linkReferences": {},
+				"object": "0x60606040526b033b2e3c9fd0803ce8000000600355341561001c57fe5b5b600354600160a060020a0333166000908152602081905260409020555b5b61078d8061004a6000396000f300606060405236156100965763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde038114610098578063095ea7b31461014657806318160ddd1461018657806323b872dd146101a8578063313ce567146101ee57806370a082311461021457806395d89b411461024f578063a9059cbb146102fd578063dd62ed3e1461033d575bfe5b34156100a057fe5b6100a861037e565b60408051602080825283518183015283519192839290830191850190808383821561010c575b80518252602083111561010c577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016100ce565b505050905090810190601f1680156101385780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561014e57fe5b61017273ffffffffffffffffffffffffffffffffffffffff600435166024356103b5565b604080519115158252519081900360200190f35b341561018e57fe5b61019661042d565b60408051918252519081900360200190f35b34156101b057fe5b61017273ffffffffffffffffffffffffffffffffffffffff60043581169060243516604435610433565b604080519115158252519081900360200190f35b34156101f657fe5b6101fe6105d4565b6040805160ff9092168252519081900360200190f35b341561021c57fe5b61019673ffffffffffffffffffffffffffffffffffffffff600435166105d9565b60408051918252519081900360200190f35b341561025757fe5b6100a8610605565b60408051602080825283518183015283519192839290830191850190808383821561010c575b80518252602083111561010c577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016100ce565b505050905090810190601f1680156101385780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561030557fe5b61017273ffffffffffffffffffffffffffffffffffffffff6004351660243561063c565b604080519115158252519081900360200190f35b341561034557fe5b61019673ffffffffffffffffffffffffffffffffffffffff60043581169060243516610727565b60408051918252519081900360200190f35b60408051808201909152601181527f30782050726f746f636f6c20546f6b656e000000000000000000000000000000602082015281565b73ffffffffffffffffffffffffffffffffffffffff338116600081815260016020908152604080832094871680845294825280832086905580518681529051929493927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060015b92915050565b60035481565b73ffffffffffffffffffffffffffffffffffffffff808416600081815260016020908152604080832033909516835293815283822054928252819052918220548390108015906104835750828110155b80156104b6575073ffffffffffffffffffffffffffffffffffffffff841660009081526020819052604090205483810110155b156105c65773ffffffffffffffffffffffffffffffffffffffff808516600090815260208190526040808220805487019055918716815220805484900390557fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8110156105585773ffffffffffffffffffffffffffffffffffffffff808616600090815260016020908152604080832033909416835292905220805484900390555b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a3600191506105cb565b600091505b5b509392505050565b601281565b73ffffffffffffffffffffffffffffffffffffffff81166000908152602081905260409020545b919050565b60408051808201909152600381527f5a52580000000000000000000000000000000000000000000000000000000000602082015281565b73ffffffffffffffffffffffffffffffffffffffff3316600090815260208190526040812054829010801590610699575073ffffffffffffffffffffffffffffffffffffffff831660009081526020819052604090205482810110155b156107185773ffffffffffffffffffffffffffffffffffffffff33811660008181526020818152604080832080548890039055938716808352918490208054870190558351868152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a3506001610427565b506000610427565b5b92915050565b73ffffffffffffffffffffffffffffffffffffffff8083166000908152600160209081526040808320938516835292905220545b929150505600a165627a7a723058208999c5329f53064aac58d4b553cb379a45bfca17e024506ff916637cfc36f7b20029",
+				"opcodes": "PUSH1 0x60 PUSH1 0x40 MSTORE PUSH12 0x33B2E3C9FD0803CE8000000 PUSH1 0x3 SSTORE CALLVALUE ISZERO PUSH2 0x1C JUMPI INVALID JUMPDEST JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB CALLER AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 SHA3 SSTORE JUMPDEST JUMPDEST PUSH2 0x78D DUP1 PUSH2 0x4A PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x60 PUSH1 0x40 MSTORE CALLDATASIZE ISZERO PUSH2 0x96 JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x6FDDE03 DUP2 EQ PUSH2 0x98 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x146 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x186 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x1A8 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x1EE JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x214 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x24F JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x2FD JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x33D JUMPI JUMPDEST INVALID JUMPDEST CALLVALUE ISZERO PUSH2 0xA0 JUMPI INVALID JUMPDEST PUSH2 0xA8 PUSH2 0x37E JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 ADD SWAP1 DUP1 DUP4 DUP4 DUP3 ISZERO PUSH2 0x10C JUMPI JUMPDEST DUP1 MLOAD DUP3 MSTORE PUSH1 0x20 DUP4 GT ISZERO PUSH2 0x10C JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0xCE JUMP JUMPDEST POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x138 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE ISZERO PUSH2 0x14E JUMPI INVALID JUMPDEST PUSH2 0x172 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x3B5 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE ISZERO PUSH2 0x18E JUMPI INVALID JUMPDEST PUSH2 0x196 PUSH2 0x42D JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE ISZERO PUSH2 0x1B0 JUMPI INVALID JUMPDEST PUSH2 0x172 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x433 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE ISZERO PUSH2 0x1F6 JUMPI INVALID JUMPDEST PUSH2 0x1FE PUSH2 0x5D4 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE ISZERO PUSH2 0x21C JUMPI INVALID JUMPDEST PUSH2 0x196 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x4 CALLDATALOAD AND PUSH2 0x5D9 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE ISZERO PUSH2 0x257 JUMPI INVALID JUMPDEST PUSH2 0xA8 PUSH2 0x605 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 ADD SWAP1 DUP1 DUP4 DUP4 DUP3 ISZERO PUSH2 0x10C JUMPI JUMPDEST DUP1 MLOAD DUP3 MSTORE PUSH1 0x20 DUP4 GT ISZERO PUSH2 0x10C JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0xCE JUMP JUMPDEST POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x138 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE ISZERO PUSH2 0x305 JUMPI INVALID JUMPDEST PUSH2 0x172 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x63C JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE ISZERO PUSH2 0x345 JUMPI INVALID JUMPDEST PUSH2 0x196 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH2 0x727 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x11 DUP2 MSTORE PUSH32 0x30782050726F746F636F6C20546F6B656E000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE DUP2 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF CALLER DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 SHA3 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE DUP1 DUP4 SHA3 DUP7 SWAP1 SSTORE DUP1 MLOAD DUP7 DUP2 MSTORE SWAP1 MLOAD SWAP3 SWAP5 SWAP4 SWAP3 PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP3 SWAP2 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP PUSH1 0x1 JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP5 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 SHA3 CALLER SWAP1 SWAP6 AND DUP4 MSTORE SWAP4 DUP2 MSTORE DUP4 DUP3 SHA3 SLOAD SWAP3 DUP3 MSTORE DUP2 SWAP1 MSTORE SWAP2 DUP3 SHA3 SLOAD DUP4 SWAP1 LT DUP1 ISZERO SWAP1 PUSH2 0x483 JUMPI POP DUP3 DUP2 LT ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x4B6 JUMPI POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 SHA3 SLOAD DUP4 DUP2 ADD LT ISZERO JUMPDEST ISZERO PUSH2 0x5C6 JUMPI PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP1 DUP3 SHA3 DUP1 SLOAD DUP8 ADD SWAP1 SSTORE SWAP2 DUP8 AND DUP2 MSTORE SHA3 DUP1 SLOAD DUP5 SWAP1 SUB SWAP1 SSTORE PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 LT ISZERO PUSH2 0x558 JUMPI PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 SHA3 CALLER SWAP1 SWAP5 AND DUP4 MSTORE SWAP3 SWAP1 MSTORE SHA3 DUP1 SLOAD DUP5 SWAP1 SUB SWAP1 SSTORE JUMPDEST DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP6 PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH1 0x1 SWAP2 POP PUSH2 0x5CB JUMP JUMPDEST PUSH1 0x0 SWAP2 POP JUMPDEST JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x12 DUP2 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 SHA3 SLOAD JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x3 DUP2 MSTORE PUSH32 0x5A52580000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE DUP2 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF CALLER AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP2 SHA3 SLOAD DUP3 SWAP1 LT DUP1 ISZERO SWAP1 PUSH2 0x699 JUMPI POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 SHA3 SLOAD DUP3 DUP2 ADD LT ISZERO JUMPDEST ISZERO PUSH2 0x718 JUMPI PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF CALLER DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 SHA3 DUP1 SLOAD DUP9 SWAP1 SUB SWAP1 SSTORE SWAP4 DUP8 AND DUP1 DUP4 MSTORE SWAP2 DUP5 SWAP1 SHA3 DUP1 SLOAD DUP8 ADD SWAP1 SSTORE DUP4 MLOAD DUP7 DUP2 MSTORE SWAP4 MLOAD SWAP2 SWAP4 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP3 SWAP1 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP PUSH1 0x1 PUSH2 0x427 JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0x427 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 SHA3 SWAP4 DUP6 AND DUP4 MSTORE SWAP3 SWAP1 MSTORE SHA3 SLOAD JUMPDEST SWAP3 SWAP2 POP POP JUMP STOP LOG1 PUSH6 0x627A7A723058 SHA3 DUP10 SWAP10 0xc5 ORIGIN SWAP16 MSTORE8 MOD 0x4a 0xac PC 0xd4 0xb5 MSTORE8 0xcb CALLDATACOPY SWAP11 GASLIMIT 0xbf 0xca OR 0xe0 0x24 POP PUSH16 0xF916637CFC36F7B20029000000000000 ",
+				"sourceMap": "795:447:3:-;;;958:6;932:32;;1150:90;;;;;;;1222:11;;-1:-1:-1;;;;;1208:10:3;1199:20;:8;:20;;;;;;;;;;:34;1150:90;795:447;;;;;;;"
+			},
+			"deployedBytecode": {
+				"linkReferences": {},
+				"object": "0x606060405236156100965763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde038114610098578063095ea7b31461014657806318160ddd1461018657806323b872dd146101a8578063313ce567146101ee57806370a082311461021457806395d89b411461024f578063a9059cbb146102fd578063dd62ed3e1461033d575bfe5b34156100a057fe5b6100a861037e565b60408051602080825283518183015283519192839290830191850190808383821561010c575b80518252602083111561010c577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016100ce565b505050905090810190601f1680156101385780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561014e57fe5b61017273ffffffffffffffffffffffffffffffffffffffff600435166024356103b5565b604080519115158252519081900360200190f35b341561018e57fe5b61019661042d565b60408051918252519081900360200190f35b34156101b057fe5b61017273ffffffffffffffffffffffffffffffffffffffff60043581169060243516604435610433565b604080519115158252519081900360200190f35b34156101f657fe5b6101fe6105d4565b6040805160ff9092168252519081900360200190f35b341561021c57fe5b61019673ffffffffffffffffffffffffffffffffffffffff600435166105d9565b60408051918252519081900360200190f35b341561025757fe5b6100a8610605565b60408051602080825283518183015283519192839290830191850190808383821561010c575b80518252602083111561010c577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016100ce565b505050905090810190601f1680156101385780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561030557fe5b61017273ffffffffffffffffffffffffffffffffffffffff6004351660243561063c565b604080519115158252519081900360200190f35b341561034557fe5b61019673ffffffffffffffffffffffffffffffffffffffff60043581169060243516610727565b60408051918252519081900360200190f35b60408051808201909152601181527f30782050726f746f636f6c20546f6b656e000000000000000000000000000000602082015281565b73ffffffffffffffffffffffffffffffffffffffff338116600081815260016020908152604080832094871680845294825280832086905580518681529051929493927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060015b92915050565b60035481565b73ffffffffffffffffffffffffffffffffffffffff808416600081815260016020908152604080832033909516835293815283822054928252819052918220548390108015906104835750828110155b80156104b6575073ffffffffffffffffffffffffffffffffffffffff841660009081526020819052604090205483810110155b156105c65773ffffffffffffffffffffffffffffffffffffffff808516600090815260208190526040808220805487019055918716815220805484900390557fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8110156105585773ffffffffffffffffffffffffffffffffffffffff808616600090815260016020908152604080832033909416835292905220805484900390555b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a3600191506105cb565b600091505b5b509392505050565b601281565b73ffffffffffffffffffffffffffffffffffffffff81166000908152602081905260409020545b919050565b60408051808201909152600381527f5a52580000000000000000000000000000000000000000000000000000000000602082015281565b73ffffffffffffffffffffffffffffffffffffffff3316600090815260208190526040812054829010801590610699575073ffffffffffffffffffffffffffffffffffffffff831660009081526020819052604090205482810110155b156107185773ffffffffffffffffffffffffffffffffffffffff33811660008181526020818152604080832080548890039055938716808352918490208054870190558351868152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a3506001610427565b506000610427565b5b92915050565b73ffffffffffffffffffffffffffffffffffffffff8083166000908152600160209081526040808320938516835292905220545b929150505600a165627a7a723058208999c5329f53064aac58d4b553cb379a45bfca17e024506ff916637cfc36f7b20029",
+				"opcodes": "PUSH1 0x60 PUSH1 0x40 MSTORE CALLDATASIZE ISZERO PUSH2 0x96 JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x6FDDE03 DUP2 EQ PUSH2 0x98 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x146 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x186 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x1A8 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x1EE JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x214 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x24F JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x2FD JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x33D JUMPI JUMPDEST INVALID JUMPDEST CALLVALUE ISZERO PUSH2 0xA0 JUMPI INVALID JUMPDEST PUSH2 0xA8 PUSH2 0x37E JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 ADD SWAP1 DUP1 DUP4 DUP4 DUP3 ISZERO PUSH2 0x10C JUMPI JUMPDEST DUP1 MLOAD DUP3 MSTORE PUSH1 0x20 DUP4 GT ISZERO PUSH2 0x10C JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0xCE JUMP JUMPDEST POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x138 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE ISZERO PUSH2 0x14E JUMPI INVALID JUMPDEST PUSH2 0x172 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x3B5 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE ISZERO PUSH2 0x18E JUMPI INVALID JUMPDEST PUSH2 0x196 PUSH2 0x42D JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE ISZERO PUSH2 0x1B0 JUMPI INVALID JUMPDEST PUSH2 0x172 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH1 0x44 CALLDATALOAD PUSH2 0x433 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE ISZERO PUSH2 0x1F6 JUMPI INVALID JUMPDEST PUSH2 0x1FE PUSH2 0x5D4 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE ISZERO PUSH2 0x21C JUMPI INVALID JUMPDEST PUSH2 0x196 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x4 CALLDATALOAD AND PUSH2 0x5D9 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE ISZERO PUSH2 0x257 JUMPI INVALID JUMPDEST PUSH2 0xA8 PUSH2 0x605 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 ADD SWAP1 DUP1 DUP4 DUP4 DUP3 ISZERO PUSH2 0x10C JUMPI JUMPDEST DUP1 MLOAD DUP3 MSTORE PUSH1 0x20 DUP4 GT ISZERO PUSH2 0x10C JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0xCE JUMP JUMPDEST POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x138 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE ISZERO PUSH2 0x305 JUMPI INVALID JUMPDEST PUSH2 0x172 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x4 CALLDATALOAD AND PUSH1 0x24 CALLDATALOAD PUSH2 0x63C JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE ISZERO PUSH2 0x345 JUMPI INVALID JUMPDEST PUSH2 0x196 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH2 0x727 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x11 DUP2 MSTORE PUSH32 0x30782050726F746F636F6C20546F6B656E000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE DUP2 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF CALLER DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 SHA3 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE DUP1 DUP4 SHA3 DUP7 SWAP1 SSTORE DUP1 MLOAD DUP7 DUP2 MSTORE SWAP1 MLOAD SWAP3 SWAP5 SWAP4 SWAP3 PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP3 SWAP2 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP PUSH1 0x1 JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP5 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 SHA3 CALLER SWAP1 SWAP6 AND DUP4 MSTORE SWAP4 DUP2 MSTORE DUP4 DUP3 SHA3 SLOAD SWAP3 DUP3 MSTORE DUP2 SWAP1 MSTORE SWAP2 DUP3 SHA3 SLOAD DUP4 SWAP1 LT DUP1 ISZERO SWAP1 PUSH2 0x483 JUMPI POP DUP3 DUP2 LT ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x4B6 JUMPI POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 SHA3 SLOAD DUP4 DUP2 ADD LT ISZERO JUMPDEST ISZERO PUSH2 0x5C6 JUMPI PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP1 DUP3 SHA3 DUP1 SLOAD DUP8 ADD SWAP1 SSTORE SWAP2 DUP8 AND DUP2 MSTORE SHA3 DUP1 SLOAD DUP5 SWAP1 SUB SWAP1 SSTORE PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 LT ISZERO PUSH2 0x558 JUMPI PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 SHA3 CALLER SWAP1 SWAP5 AND DUP4 MSTORE SWAP3 SWAP1 MSTORE SHA3 DUP1 SLOAD DUP5 SWAP1 SUB SWAP1 SSTORE JUMPDEST DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP6 PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH1 0x1 SWAP2 POP PUSH2 0x5CB JUMP JUMPDEST PUSH1 0x0 SWAP2 POP JUMPDEST JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x12 DUP2 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 SHA3 SLOAD JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x3 DUP2 MSTORE PUSH32 0x5A52580000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE DUP2 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF CALLER AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP2 SHA3 SLOAD DUP3 SWAP1 LT DUP1 ISZERO SWAP1 PUSH2 0x699 JUMPI POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 SHA3 SLOAD DUP3 DUP2 ADD LT ISZERO JUMPDEST ISZERO PUSH2 0x718 JUMPI PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF CALLER DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 SHA3 DUP1 SLOAD DUP9 SWAP1 SUB SWAP1 SSTORE SWAP4 DUP8 AND DUP1 DUP4 MSTORE SWAP2 DUP5 SWAP1 SHA3 DUP1 SLOAD DUP8 ADD SWAP1 SSTORE DUP4 MLOAD DUP7 DUP2 MSTORE SWAP4 MLOAD SWAP2 SWAP4 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP3 SWAP1 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP PUSH1 0x1 PUSH2 0x427 JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0x427 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 SHA3 SWAP4 DUP6 AND DUP4 MSTORE SWAP3 SWAP1 MSTORE SHA3 SLOAD JUMPDEST SWAP3 SWAP2 POP POP JUMP STOP LOG1 PUSH6 0x627A7A723058 SHA3 DUP10 SWAP10 0xc5 ORIGIN SWAP16 MSTORE8 MOD 0x4a 0xac PC 0xd4 0xb5 MSTORE8 0xcb CALLDATACOPY SWAP11 GASLIMIT 0xbf 0xca OR 0xe0 0x24 POP PUSH16 0xF916637CFC36F7B20029000000000000 ",
+				"sourceMap": "795:447:3:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1009:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18:2:-1;;13:3;7:5;32;59:3;53:5;48:3;41:6;93:2;88:3;85:2;78:6;73:3;67:5;152:3;;;;;117:2;108:3;;;;130;172:5;167:4;181:3;3:186;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1087:187:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;932:32:3;;;;;;;;;;;;;;;;;;;;;;;;;;1066:609:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;891:35:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;982:99:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1064:37:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18:2:-1;;13:3;7:5;32;59:3;53:5;48:3;41:6;93:2;88:3;85:2;78:6;73:3;67:5;152:3;;;;;117:2;108:3;;;;130;172:5;167:4;181:3;3:186;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;125:410:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1280:126;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1009:49:3;;;;;;;;;;;;;;;;;;;:::o;1087:187:0:-;1160:19;1168:10;1160:19;;1144:4;1160:19;;;:7;:19;;;;;;;;:29;;;;;;;;;;;;:38;;;1208;;;;;;;1144:4;;1160:29;:19;1208:38;;;;;;;;;;;-1:-1:-1;1263:4:0;1087:187;;;;;:::o;932:32:3:-;;;;:::o;1066:609:2:-;1198:14;;;;1161:4;1198:14;;;:7;:14;;;;;;;;1213:10;1198:26;;;;;;;;;;;;1238:15;;;;;;;;;;:25;;;;;;:60;;;1292:6;1279:9;:19;;1238:60;:115;;;;-1:-1:-1;1340:13:2;;;:8;:13;;;;;;;;;;;1314:22;;;:39;;1238:115;1234:435;;;1378:13;;;;:8;:13;;;;;;;;;;;:23;;;;;;1415:15;;;;;;:25;;;;;;;768:10;1458:20;;1454:95;;;1498:14;;;;;;;;:7;:14;;;;;;;;1513:10;1498:26;;;;;;;;;:36;;;;;;;1454:95;1578:3;1562:28;;1571:5;1562:28;;;1583:6;1562:28;;;;;;;;;;;;;;;;;;1611:4;1604:11;;;;1234:435;1653:5;1646:12;;1234:435;1066:609;;;;;;;:::o;891:35:3:-;924:2;891:35;:::o;982:99:0:-;1058:16;;;1035:4;1058:16;;;;;;;;;;;982:99;;;;:::o;1064:37:3:-;;;;;;;;;;;;;;;;;;;:::o;125:410:0:-;267:20;276:10;267:20;178:4;267:20;;;;;;;;;;;:30;;;;;;:73;;-1:-1:-1;327:13:0;;;:8;:13;;;;;;;;;;;301:22;;;:39;;267:73;263:266;;;356:20;365:10;356:20;;:8;:20;;;;;;;;;;;:30;;;;;;;400:13;;;;;;;;;;:23;;;;;;437:33;;;;;;;400:13;;437:33;;;;;;;;;;;-1:-1:-1;491:4:0;484:11;;263:266;-1:-1:-1;521:5:0;514:12;;263:266;125:410;;;;;:::o;1280:126::-;1374:15;;;;1351:4;1374:15;;;:7;:15;;;;;;;;:25;;;;;;;;;;1280:126;;;;;:::o"
+			},
+			"gasEstimates": {
+				"creation": {
+					"codeDepositCost": "386600",
+					"executionCost": "40780",
+					"totalCost": "427380"
+				},
+				"external": {
+					"allowance(address,address)": "737",
+					"approve(address,uint256)": "22218",
+					"balanceOf(address)": "579",
+					"decimals()": "270",
+					"name()": "530",
+					"symbol()": "662",
+					"totalSupply()": "417",
+					"transfer(address,uint256)": "43393",
+					"transferFrom(address,address,uint256)": "64116"
+				}
+			},
+			"legacyAssembly": {
+				".code": [
+					{
+						"begin": 795,
+						"end": 1242,
+						"name": "PUSH",
+						"value": "60"
+					},
+					{
+						"begin": 795,
+						"end": 1242,
+						"name": "PUSH",
+						"value": "40"
+					},
+					{
+						"begin": 795,
+						"end": 1242,
+						"name": "MSTORE"
+					},
+					{
+						"begin": 958,
+						"end": 964,
+						"name": "PUSH",
+						"value": "33B2E3C9FD0803CE8000000"
+					},
+					{
+						"begin": 932,
+						"end": 964,
+						"name": "PUSH",
+						"value": "3"
+					},
+					{
+						"begin": 932,
+						"end": 964,
+						"name": "SSTORE"
+					},
+					{
+						"begin": 1150,
+						"end": 1240,
+						"name": "CALLVALUE"
+					},
+					{
+						"begin": 1150,
+						"end": 1240,
+						"name": "ISZERO"
+					},
+					{
+						"begin": 1150,
+						"end": 1240,
+						"name": "PUSH [tag]",
+						"value": "1"
+					},
+					{
+						"begin": 1150,
+						"end": 1240,
+						"name": "JUMPI"
+					},
+					{
+						"begin": 1150,
+						"end": 1240,
+						"name": "INVALID"
+					},
+					{
+						"begin": 1150,
+						"end": 1240,
+						"name": "tag",
+						"value": "1"
+					},
+					{
+						"begin": 1150,
+						"end": 1240,
+						"name": "JUMPDEST"
+					},
+					{
+						"begin": 1150,
+						"end": 1240,
+						"name": "tag",
+						"value": "2"
+					},
+					{
+						"begin": 1150,
+						"end": 1240,
+						"name": "JUMPDEST"
+					},
+					{
+						"begin": 1222,
+						"end": 1233,
+						"name": "PUSH",
+						"value": "3"
+					},
+					{
+						"begin": 1222,
+						"end": 1233,
+						"name": "SLOAD"
+					},
+					{
+						"begin": -1,
+						"end": -1,
+						"name": "PUSH",
+						"value": "1"
+					},
+					{
+						"begin": -1,
+						"end": -1,
+						"name": "PUSH",
+						"value": "A0"
+					},
+					{
+						"begin": -1,
+						"end": -1,
+						"name": "PUSH",
+						"value": "2"
+					},
+					{
+						"begin": -1,
+						"end": -1,
+						"name": "EXP"
+					},
+					{
+						"begin": -1,
+						"end": -1,
+						"name": "SUB"
+					},
+					{
+						"begin": 1208,
+						"end": 1218,
+						"name": "CALLER"
+					},
+					{
+						"begin": 1199,
+						"end": 1219,
+						"name": "AND"
+					},
+					{
+						"begin": 1199,
+						"end": 1207,
+						"name": "PUSH",
+						"value": "0"
+					},
+					{
+						"begin": 1199,
+						"end": 1219,
+						"name": "SWAP1"
+					},
+					{
+						"begin": 1199,
+						"end": 1219,
+						"name": "DUP2"
+					},
+					{
+						"begin": 1199,
+						"end": 1219,
+						"name": "MSTORE"
+					},
+					{
+						"begin": 1199,
+						"end": 1219,
+						"name": "PUSH",
+						"value": "20"
+					},
+					{
+						"begin": 1199,
+						"end": 1219,
+						"name": "DUP2"
+					},
+					{
+						"begin": 1199,
+						"end": 1219,
+						"name": "SWAP1"
+					},
+					{
+						"begin": 1199,
+						"end": 1219,
+						"name": "MSTORE"
+					},
+					{
+						"begin": 1199,
+						"end": 1219,
+						"name": "PUSH",
+						"value": "40"
+					},
+					{
+						"begin": 1199,
+						"end": 1219,
+						"name": "SWAP1"
+					},
+					{
+						"begin": 1199,
+						"end": 1219,
+						"name": "SHA3"
+					},
+					{
+						"begin": 1199,
+						"end": 1233,
+						"name": "SSTORE"
+					},
+					{
+						"begin": 1150,
+						"end": 1240,
+						"name": "tag",
+						"value": "3"
+					},
+					{
+						"begin": 1150,
+						"end": 1240,
+						"name": "JUMPDEST"
+					},
+					{
+						"begin": 795,
+						"end": 1242,
+						"name": "tag",
+						"value": "4"
+					},
+					{
+						"begin": 795,
+						"end": 1242,
+						"name": "JUMPDEST"
+					},
+					{
+						"begin": 795,
+						"end": 1242,
+						"name": "PUSH #[$]",
+						"value": "0000000000000000000000000000000000000000000000000000000000000000"
+					},
+					{
+						"begin": 795,
+						"end": 1242,
+						"name": "DUP1"
+					},
+					{
+						"begin": 795,
+						"end": 1242,
+						"name": "PUSH [$]",
+						"value": "0000000000000000000000000000000000000000000000000000000000000000"
+					},
+					{
+						"begin": 795,
+						"end": 1242,
+						"name": "PUSH",
+						"value": "0"
+					},
+					{
+						"begin": 795,
+						"end": 1242,
+						"name": "CODECOPY"
+					},
+					{
+						"begin": 795,
+						"end": 1242,
+						"name": "PUSH",
+						"value": "0"
+					},
+					{
+						"begin": 795,
+						"end": 1242,
+						"name": "RETURN"
+					}
+				],
+				".data": {
+					"0": {
+						".code": [
+							{
+								"begin": 795,
+								"end": 1242,
+								"name": "PUSH",
+								"value": "60"
+							},
+							{
+								"begin": 795,
+								"end": 1242,
+								"name": "PUSH",
+								"value": "40"
+							},
+							{
+								"begin": 795,
+								"end": 1242,
+								"name": "MSTORE"
+							},
+							{
+								"begin": 795,
+								"end": 1242,
+								"name": "CALLDATASIZE"
+							},
+							{
+								"begin": 795,
+								"end": 1242,
+								"name": "ISZERO"
+							},
+							{
+								"begin": 795,
+								"end": 1242,
+								"name": "PUSH [tag]",
+								"value": "1"
+							},
+							{
+								"begin": 795,
+								"end": 1242,
+								"name": "JUMPI"
+							},
+							{
+								"begin": 795,
+								"end": 1242,
+								"name": "PUSH",
+								"value": "FFFFFFFF"
+							},
+							{
+								"begin": 795,
+								"end": 1242,
+								"name": "PUSH",
+								"value": "100000000000000000000000000000000000000000000000000000000"
+							},
+							{
+								"begin": 795,
+								"end": 1242,
+								"name": "PUSH",
+								"value": "0"
+							},
+							{
+								"begin": 795,
+								"end": 1242,
+								"name": "CALLDATALOAD"
+							},
+							{
+								"begin": 795,
+								"end": 1242,
+								"name": "DIV"
+							},
+							{
+								"begin": 795,
+								"end": 1242,
+								"name": "AND"
+							},
+							{
+								"begin": 795,
+								"end": 1242,
+								"name": "PUSH",
+								"value": "6FDDE03"
+							},
+							{
+								"begin": 795,
+								"end": 1242,
+								"name": "DUP2"
+							},
+							{
+								"begin": 795,
+								"end": 1242,
+								"name": "EQ"
+							},
+							{
+								"begin": 795,
+								"end": 1242,
+								"name": "PUSH [tag]",
+								"value": "2"
+							},
+							{
+								"begin": 795,
+								"end": 1242,
+								"name": "JUMPI"
+							},
+							{
+								"begin": 795,
+								"end": 1242,
+								"name": "DUP1"
+							},
+							{
+								"begin": 795,
+								"end": 1242,
+								"name": "PUSH",
+								"value": "95EA7B3"
+							},
+							{
+								"begin": 795,
+								"end": 1242,
+								"name": "EQ"
+							},
+							{
+								"begin": 795,
+								"end": 1242,
+								"name": "PUSH [tag]",
+								"value": "3"
+							},
+							{
+								"begin": 795,
+								"end": 1242,
+								"name": "JUMPI"
+							},
+							{
+								"begin": 795,
+								"end": 1242,
+								"name": "DUP1"
+							},
+							{
+								"begin": 795,
+								"end": 1242,
+								"name": "PUSH",
+								"value": "18160DDD"
+							},
+							{
+								"begin": 795,
+								"end": 1242,
+								"name": "EQ"
+							},
+							{
+								"begin": 795,
+								"end": 1242,
+								"name": "PUSH [tag]",
+								"value": "4"
+							},
+							{
+								"begin": 795,
+								"end": 1242,
+								"name": "JUMPI"
+							},
+							{
+								"begin": 795,
+								"end": 1242,
+								"name": "DUP1"
+							},
+							{
+								"begin": 795,
+								"end": 1242,
+								"name": "PUSH",
+								"value": "23B872DD"
+							},
+							{
+								"begin": 795,
+								"end": 1242,
+								"name": "EQ"
+							},
+							{
+								"begin": 795,
+								"end": 1242,
+								"name": "PUSH [tag]",
+								"value": "5"
+							},
+							{
+								"begin": 795,
+								"end": 1242,
+								"name": "JUMPI"
+							},
+							{
+								"begin": 795,
+								"end": 1242,
+								"name": "DUP1"
+							},
+							{
+								"begin": 795,
+								"end": 1242,
+								"name": "PUSH",
+								"value": "313CE567"
+							},
+							{
+								"begin": 795,
+								"end": 1242,
+								"name": "EQ"
+							},
+							{
+								"begin": 795,
+								"end": 1242,
+								"name": "PUSH [tag]",
+								"value": "6"
+							},
+							{
+								"begin": 795,
+								"end": 1242,
+								"name": "JUMPI"
+							},
+							{
+								"begin": 795,
+								"end": 1242,
+								"name": "DUP1"
+							},
+							{
+								"begin": 795,
+								"end": 1242,
+								"name": "PUSH",
+								"value": "70A08231"
+							},
+							{
+								"begin": 795,
+								"end": 1242,
+								"name": "EQ"
+							},
+							{
+								"begin": 795,
+								"end": 1242,
+								"name": "PUSH [tag]",
+								"value": "7"
+							},
+							{
+								"begin": 795,
+								"end": 1242,
+								"name": "JUMPI"
+							},
+							{
+								"begin": 795,
+								"end": 1242,
+								"name": "DUP1"
+							},
+							{
+								"begin": 795,
+								"end": 1242,
+								"name": "PUSH",
+								"value": "95D89B41"
+							},
+							{
+								"begin": 795,
+								"end": 1242,
+								"name": "EQ"
+							},
+							{
+								"begin": 795,
+								"end": 1242,
+								"name": "PUSH [tag]",
+								"value": "8"
+							},
+							{
+								"begin": 795,
+								"end": 1242,
+								"name": "JUMPI"
+							},
+							{
+								"begin": 795,
+								"end": 1242,
+								"name": "DUP1"
+							},
+							{
+								"begin": 795,
+								"end": 1242,
+								"name": "PUSH",
+								"value": "A9059CBB"
+							},
+							{
+								"begin": 795,
+								"end": 1242,
+								"name": "EQ"
+							},
+							{
+								"begin": 795,
+								"end": 1242,
+								"name": "PUSH [tag]",
+								"value": "9"
+							},
+							{
+								"begin": 795,
+								"end": 1242,
+								"name": "JUMPI"
+							},
+							{
+								"begin": 795,
+								"end": 1242,
+								"name": "DUP1"
+							},
+							{
+								"begin": 795,
+								"end": 1242,
+								"name": "PUSH",
+								"value": "DD62ED3E"
+							},
+							{
+								"begin": 795,
+								"end": 1242,
+								"name": "EQ"
+							},
+							{
+								"begin": 795,
+								"end": 1242,
+								"name": "PUSH [tag]",
+								"value": "10"
+							},
+							{
+								"begin": 795,
+								"end": 1242,
+								"name": "JUMPI"
+							},
+							{
+								"begin": 795,
+								"end": 1242,
+								"name": "tag",
+								"value": "1"
+							},
+							{
+								"begin": 795,
+								"end": 1242,
+								"name": "JUMPDEST"
+							},
+							{
+								"begin": 795,
+								"end": 1242,
+								"name": "INVALID"
+							},
+							{
+								"begin": 1009,
+								"end": 1058,
+								"name": "tag",
+								"value": "2"
+							},
+							{
+								"begin": 1009,
+								"end": 1058,
+								"name": "JUMPDEST"
+							},
+							{
+								"begin": 1009,
+								"end": 1058,
+								"name": "CALLVALUE"
+							},
+							{
+								"begin": 1009,
+								"end": 1058,
+								"name": "ISZERO"
+							},
+							{
+								"begin": 1009,
+								"end": 1058,
+								"name": "PUSH [tag]",
+								"value": "11"
+							},
+							{
+								"begin": 1009,
+								"end": 1058,
+								"name": "JUMPI"
+							},
+							{
+								"begin": 1009,
+								"end": 1058,
+								"name": "INVALID"
+							},
+							{
+								"begin": 1009,
+								"end": 1058,
+								"name": "tag",
+								"value": "11"
+							},
+							{
+								"begin": 1009,
+								"end": 1058,
+								"name": "JUMPDEST"
+							},
+							{
+								"begin": 1009,
+								"end": 1058,
+								"name": "PUSH [tag]",
+								"value": "12"
+							},
+							{
+								"begin": 1009,
+								"end": 1058,
+								"name": "PUSH [tag]",
+								"value": "13"
+							},
+							{
+								"begin": 1009,
+								"end": 1058,
+								"name": "JUMP"
+							},
+							{
+								"begin": 1009,
+								"end": 1058,
+								"name": "tag",
+								"value": "12"
+							},
+							{
+								"begin": 1009,
+								"end": 1058,
+								"name": "JUMPDEST"
+							},
+							{
+								"begin": 1009,
+								"end": 1058,
+								"name": "PUSH",
+								"value": "40"
+							},
+							{
+								"begin": 1009,
+								"end": 1058,
+								"name": "DUP1"
+							},
+							{
+								"begin": 1009,
+								"end": 1058,
+								"name": "MLOAD"
+							},
+							{
+								"begin": 1009,
+								"end": 1058,
+								"name": "PUSH",
+								"value": "20"
+							},
+							{
+								"begin": 1009,
+								"end": 1058,
+								"name": "DUP1"
+							},
+							{
+								"begin": 1009,
+								"end": 1058,
+								"name": "DUP3"
+							},
+							{
+								"begin": 1009,
+								"end": 1058,
+								"name": "MSTORE"
+							},
+							{
+								"begin": 1009,
+								"end": 1058,
+								"name": "DUP4"
+							},
+							{
+								"begin": 1009,
+								"end": 1058,
+								"name": "MLOAD"
+							},
+							{
+								"begin": 1009,
+								"end": 1058,
+								"name": "DUP2"
+							},
+							{
+								"begin": 1009,
+								"end": 1058,
+								"name": "DUP4"
+							},
+							{
+								"begin": 1009,
+								"end": 1058,
+								"name": "ADD"
+							},
+							{
+								"begin": 1009,
+								"end": 1058,
+								"name": "MSTORE"
+							},
+							{
+								"begin": 1009,
+								"end": 1058,
+								"name": "DUP4"
+							},
+							{
+								"begin": 1009,
+								"end": 1058,
+								"name": "MLOAD"
+							},
+							{
+								"begin": 1009,
+								"end": 1058,
+								"name": "SWAP2"
+							},
+							{
+								"begin": 1009,
+								"end": 1058,
+								"name": "SWAP3"
+							},
+							{
+								"begin": 1009,
+								"end": 1058,
+								"name": "DUP4"
+							},
+							{
+								"begin": 1009,
+								"end": 1058,
+								"name": "SWAP3"
+							},
+							{
+								"begin": 1009,
+								"end": 1058,
+								"name": "SWAP1"
+							},
+							{
+								"begin": 1009,
+								"end": 1058,
+								"name": "DUP4"
+							},
+							{
+								"begin": 1009,
+								"end": 1058,
+								"name": "ADD"
+							},
+							{
+								"begin": 1009,
+								"end": 1058,
+								"name": "SWAP2"
+							},
+							{
+								"begin": 1009,
+								"end": 1058,
+								"name": "DUP6"
+							},
+							{
+								"begin": 1009,
+								"end": 1058,
+								"name": "ADD"
+							},
+							{
+								"begin": 1009,
+								"end": 1058,
+								"name": "SWAP1"
+							},
+							{
+								"begin": 1009,
+								"end": 1058,
+								"name": "DUP1"
+							},
+							{
+								"begin": 1009,
+								"end": 1058,
+								"name": "DUP4"
+							},
+							{
+								"begin": 1009,
+								"end": 1058,
+								"name": "DUP4"
+							},
+							{
+								"begin": 18,
+								"end": 20,
+								"name": "DUP3"
+							},
+							{
+								"begin": 18,
+								"end": 20,
+								"name": "ISZERO"
+							},
+							{
+								"begin": 13,
+								"end": 16,
+								"name": "PUSH [tag]",
+								"value": "14"
+							},
+							{
+								"begin": 7,
+								"end": 12,
+								"name": "JUMPI"
+							},
+							{
+								"begin": 32,
+								"end": 37,
+								"name": "tag",
+								"value": "15"
+							},
+							{
+								"begin": 32,
+								"end": 37,
+								"name": "JUMPDEST"
+							},
+							{
+								"begin": 59,
+								"end": 62,
+								"name": "DUP1"
+							},
+							{
+								"begin": 53,
+								"end": 58,
+								"name": "MLOAD"
+							},
+							{
+								"begin": 48,
+								"end": 51,
+								"name": "DUP3"
+							},
+							{
+								"begin": 41,
+								"end": 47,
+								"name": "MSTORE"
+							},
+							{
+								"begin": 93,
+								"end": 95,
+								"name": "PUSH",
+								"value": "20"
+							},
+							{
+								"begin": 88,
+								"end": 91,
+								"name": "DUP4"
+							},
+							{
+								"begin": 85,
+								"end": 87,
+								"name": "GT"
+							},
+							{
+								"begin": 78,
+								"end": 84,
+								"name": "ISZERO"
+							},
+							{
+								"begin": 73,
+								"end": 76,
+								"name": "PUSH [tag]",
+								"value": "14"
+							},
+							{
+								"begin": 67,
+								"end": 72,
+								"name": "JUMPI"
+							},
+							{
+								"begin": 152,
+								"end": 155,
+								"name": "PUSH",
+								"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0"
+							},
+							{
+								"begin": 152,
+								"end": 155,
+								"name": "SWAP1"
+							},
+							{
+								"begin": 152,
+								"end": 155,
+								"name": "SWAP3"
+							},
+							{
+								"begin": 152,
+								"end": 155,
+								"name": "ADD"
+							},
+							{
+								"begin": 152,
+								"end": 155,
+								"name": "SWAP2"
+							},
+							{
+								"begin": 117,
+								"end": 119,
+								"name": "PUSH",
+								"value": "20"
+							},
+							{
+								"begin": 108,
+								"end": 111,
+								"name": "SWAP2"
+							},
+							{
+								"begin": 108,
+								"end": 111,
+								"name": "DUP3"
+							},
+							{
+								"begin": 108,
+								"end": 111,
+								"name": "ADD"
+							},
+							{
+								"begin": 108,
+								"end": 111,
+								"name": "SWAP2"
+							},
+							{
+								"begin": 130,
+								"end": 133,
+								"name": "ADD"
+							},
+							{
+								"begin": 172,
+								"end": 177,
+								"name": "PUSH [tag]",
+								"value": "15"
+							},
+							{
+								"begin": 167,
+								"end": 171,
+								"name": "JUMP"
+							},
+							{
+								"begin": 181,
+								"end": 184,
+								"name": "tag",
+								"value": "14"
+							},
+							{
+								"begin": 181,
+								"end": 184,
+								"name": "JUMPDEST"
+							},
+							{
+								"begin": 3,
+								"end": 189,
+								"name": "POP"
+							},
+							{
+								"begin": 3,
+								"end": 189,
+								"name": "POP"
+							},
+							{
+								"begin": 3,
+								"end": 189,
+								"name": "POP"
+							},
+							{
+								"begin": 3,
+								"end": 189,
+								"name": "SWAP1"
+							},
+							{
+								"begin": 3,
+								"end": 189,
+								"name": "POP"
+							},
+							{
+								"begin": 3,
+								"end": 189,
+								"name": "SWAP1"
+							},
+							{
+								"begin": 3,
+								"end": 189,
+								"name": "DUP2"
+							},
+							{
+								"begin": 3,
+								"end": 189,
+								"name": "ADD"
+							},
+							{
+								"begin": 3,
+								"end": 189,
+								"name": "SWAP1"
+							},
+							{
+								"begin": 3,
+								"end": 189,
+								"name": "PUSH",
+								"value": "1F"
+							},
+							{
+								"begin": 3,
+								"end": 189,
+								"name": "AND"
+							},
+							{
+								"begin": 3,
+								"end": 189,
+								"name": "DUP1"
+							},
+							{
+								"begin": 3,
+								"end": 189,
+								"name": "ISZERO"
+							},
+							{
+								"begin": 3,
+								"end": 189,
+								"name": "PUSH [tag]",
+								"value": "16"
+							},
+							{
+								"begin": 3,
+								"end": 189,
+								"name": "JUMPI"
+							},
+							{
+								"begin": 3,
+								"end": 189,
+								"name": "DUP1"
+							},
+							{
+								"begin": 3,
+								"end": 189,
+								"name": "DUP3"
+							},
+							{
+								"begin": 3,
+								"end": 189,
+								"name": "SUB"
+							},
+							{
+								"begin": 3,
+								"end": 189,
+								"name": "DUP1"
+							},
+							{
+								"begin": 3,
+								"end": 189,
+								"name": "MLOAD"
+							},
+							{
+								"begin": 3,
+								"end": 189,
+								"name": "PUSH",
+								"value": "1"
+							},
+							{
+								"begin": 3,
+								"end": 189,
+								"name": "DUP4"
+							},
+							{
+								"begin": 3,
+								"end": 189,
+								"name": "PUSH",
+								"value": "20"
+							},
+							{
+								"begin": 3,
+								"end": 189,
+								"name": "SUB"
+							},
+							{
+								"begin": 3,
+								"end": 189,
+								"name": "PUSH",
+								"value": "100"
+							},
+							{
+								"begin": 3,
+								"end": 189,
+								"name": "EXP"
+							},
+							{
+								"begin": 3,
+								"end": 189,
+								"name": "SUB"
+							},
+							{
+								"begin": 3,
+								"end": 189,
+								"name": "NOT"
+							},
+							{
+								"begin": 3,
+								"end": 189,
+								"name": "AND"
+							},
+							{
+								"begin": 3,
+								"end": 189,
+								"name": "DUP2"
+							},
+							{
+								"begin": 3,
+								"end": 189,
+								"name": "MSTORE"
+							},
+							{
+								"begin": 3,
+								"end": 189,
+								"name": "PUSH",
+								"value": "20"
+							},
+							{
+								"begin": 3,
+								"end": 189,
+								"name": "ADD"
+							},
+							{
+								"begin": 3,
+								"end": 189,
+								"name": "SWAP2"
+							},
+							{
+								"begin": 3,
+								"end": 189,
+								"name": "POP"
+							},
+							{
+								"begin": 3,
+								"end": 189,
+								"name": "tag",
+								"value": "16"
+							},
+							{
+								"begin": 3,
+								"end": 189,
+								"name": "JUMPDEST"
+							},
+							{
+								"begin": 3,
+								"end": 189,
+								"name": "POP"
+							},
+							{
+								"begin": 3,
+								"end": 189,
+								"name": "SWAP3"
+							},
+							{
+								"begin": 3,
+								"end": 189,
+								"name": "POP"
+							},
+							{
+								"begin": 3,
+								"end": 189,
+								"name": "POP"
+							},
+							{
+								"begin": 3,
+								"end": 189,
+								"name": "POP"
+							},
+							{
+								"begin": 3,
+								"end": 189,
+								"name": "PUSH",
+								"value": "40"
+							},
+							{
+								"begin": 3,
+								"end": 189,
+								"name": "MLOAD"
+							},
+							{
+								"begin": 3,
+								"end": 189,
+								"name": "DUP1"
+							},
+							{
+								"begin": 3,
+								"end": 189,
+								"name": "SWAP2"
+							},
+							{
+								"begin": 3,
+								"end": 189,
+								"name": "SUB"
+							},
+							{
+								"begin": 3,
+								"end": 189,
+								"name": "SWAP1"
+							},
+							{
+								"begin": 3,
+								"end": 189,
+								"name": "RETURN"
+							},
+							{
+								"begin": 1087,
+								"end": 1274,
+								"name": "tag",
+								"value": "3"
+							},
+							{
+								"begin": 1087,
+								"end": 1274,
+								"name": "JUMPDEST"
+							},
+							{
+								"begin": 1087,
+								"end": 1274,
+								"name": "CALLVALUE"
+							},
+							{
+								"begin": 1087,
+								"end": 1274,
+								"name": "ISZERO"
+							},
+							{
+								"begin": 1087,
+								"end": 1274,
+								"name": "PUSH [tag]",
+								"value": "17"
+							},
+							{
+								"begin": 1087,
+								"end": 1274,
+								"name": "JUMPI"
+							},
+							{
+								"begin": 1087,
+								"end": 1274,
+								"name": "INVALID"
+							},
+							{
+								"begin": 1087,
+								"end": 1274,
+								"name": "tag",
+								"value": "17"
+							},
+							{
+								"begin": 1087,
+								"end": 1274,
+								"name": "JUMPDEST"
+							},
+							{
+								"begin": 1087,
+								"end": 1274,
+								"name": "PUSH [tag]",
+								"value": "18"
+							},
+							{
+								"begin": 1087,
+								"end": 1274,
+								"name": "PUSH",
+								"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
+							},
+							{
+								"begin": 1087,
+								"end": 1274,
+								"name": "PUSH",
+								"value": "4"
+							},
+							{
+								"begin": 1087,
+								"end": 1274,
+								"name": "CALLDATALOAD"
+							},
+							{
+								"begin": 1087,
+								"end": 1274,
+								"name": "AND"
+							},
+							{
+								"begin": 1087,
+								"end": 1274,
+								"name": "PUSH",
+								"value": "24"
+							},
+							{
+								"begin": 1087,
+								"end": 1274,
+								"name": "CALLDATALOAD"
+							},
+							{
+								"begin": 1087,
+								"end": 1274,
+								"name": "PUSH [tag]",
+								"value": "19"
+							},
+							{
+								"begin": 1087,
+								"end": 1274,
+								"name": "JUMP"
+							},
+							{
+								"begin": 1087,
+								"end": 1274,
+								"name": "tag",
+								"value": "18"
+							},
+							{
+								"begin": 1087,
+								"end": 1274,
+								"name": "JUMPDEST"
+							},
+							{
+								"begin": 1087,
+								"end": 1274,
+								"name": "PUSH",
+								"value": "40"
+							},
+							{
+								"begin": 1087,
+								"end": 1274,
+								"name": "DUP1"
+							},
+							{
+								"begin": 1087,
+								"end": 1274,
+								"name": "MLOAD"
+							},
+							{
+								"begin": 1087,
+								"end": 1274,
+								"name": "SWAP2"
+							},
+							{
+								"begin": 1087,
+								"end": 1274,
+								"name": "ISZERO"
+							},
+							{
+								"begin": 1087,
+								"end": 1274,
+								"name": "ISZERO"
+							},
+							{
+								"begin": 1087,
+								"end": 1274,
+								"name": "DUP3"
+							},
+							{
+								"begin": 1087,
+								"end": 1274,
+								"name": "MSTORE"
+							},
+							{
+								"begin": 1087,
+								"end": 1274,
+								"name": "MLOAD"
+							},
+							{
+								"begin": 1087,
+								"end": 1274,
+								"name": "SWAP1"
+							},
+							{
+								"begin": 1087,
+								"end": 1274,
+								"name": "DUP2"
+							},
+							{
+								"begin": 1087,
+								"end": 1274,
+								"name": "SWAP1"
+							},
+							{
+								"begin": 1087,
+								"end": 1274,
+								"name": "SUB"
+							},
+							{
+								"begin": 1087,
+								"end": 1274,
+								"name": "PUSH",
+								"value": "20"
+							},
+							{
+								"begin": 1087,
+								"end": 1274,
+								"name": "ADD"
+							},
+							{
+								"begin": 1087,
+								"end": 1274,
+								"name": "SWAP1"
+							},
+							{
+								"begin": 1087,
+								"end": 1274,
+								"name": "RETURN"
+							},
+							{
+								"begin": 932,
+								"end": 964,
+								"name": "tag",
+								"value": "4"
+							},
+							{
+								"begin": 932,
+								"end": 964,
+								"name": "JUMPDEST"
+							},
+							{
+								"begin": 932,
+								"end": 964,
+								"name": "CALLVALUE"
+							},
+							{
+								"begin": 932,
+								"end": 964,
+								"name": "ISZERO"
+							},
+							{
+								"begin": 932,
+								"end": 964,
+								"name": "PUSH [tag]",
+								"value": "20"
+							},
+							{
+								"begin": 932,
+								"end": 964,
+								"name": "JUMPI"
+							},
+							{
+								"begin": 932,
+								"end": 964,
+								"name": "INVALID"
+							},
+							{
+								"begin": 932,
+								"end": 964,
+								"name": "tag",
+								"value": "20"
+							},
+							{
+								"begin": 932,
+								"end": 964,
+								"name": "JUMPDEST"
+							},
+							{
+								"begin": 932,
+								"end": 964,
+								"name": "PUSH [tag]",
+								"value": "21"
+							},
+							{
+								"begin": 932,
+								"end": 964,
+								"name": "PUSH [tag]",
+								"value": "22"
+							},
+							{
+								"begin": 932,
+								"end": 964,
+								"name": "JUMP"
+							},
+							{
+								"begin": 932,
+								"end": 964,
+								"name": "tag",
+								"value": "21"
+							},
+							{
+								"begin": 932,
+								"end": 964,
+								"name": "JUMPDEST"
+							},
+							{
+								"begin": 932,
+								"end": 964,
+								"name": "PUSH",
+								"value": "40"
+							},
+							{
+								"begin": 932,
+								"end": 964,
+								"name": "DUP1"
+							},
+							{
+								"begin": 932,
+								"end": 964,
+								"name": "MLOAD"
+							},
+							{
+								"begin": 932,
+								"end": 964,
+								"name": "SWAP2"
+							},
+							{
+								"begin": 932,
+								"end": 964,
+								"name": "DUP3"
+							},
+							{
+								"begin": 932,
+								"end": 964,
+								"name": "MSTORE"
+							},
+							{
+								"begin": 932,
+								"end": 964,
+								"name": "MLOAD"
+							},
+							{
+								"begin": 932,
+								"end": 964,
+								"name": "SWAP1"
+							},
+							{
+								"begin": 932,
+								"end": 964,
+								"name": "DUP2"
+							},
+							{
+								"begin": 932,
+								"end": 964,
+								"name": "SWAP1"
+							},
+							{
+								"begin": 932,
+								"end": 964,
+								"name": "SUB"
+							},
+							{
+								"begin": 932,
+								"end": 964,
+								"name": "PUSH",
+								"value": "20"
+							},
+							{
+								"begin": 932,
+								"end": 964,
+								"name": "ADD"
+							},
+							{
+								"begin": 932,
+								"end": 964,
+								"name": "SWAP1"
+							},
+							{
+								"begin": 932,
+								"end": 964,
+								"name": "RETURN"
+							},
+							{
+								"begin": 1066,
+								"end": 1675,
+								"name": "tag",
+								"value": "5"
+							},
+							{
+								"begin": 1066,
+								"end": 1675,
+								"name": "JUMPDEST"
+							},
+							{
+								"begin": 1066,
+								"end": 1675,
+								"name": "CALLVALUE"
+							},
+							{
+								"begin": 1066,
+								"end": 1675,
+								"name": "ISZERO"
+							},
+							{
+								"begin": 1066,
+								"end": 1675,
+								"name": "PUSH [tag]",
+								"value": "23"
+							},
+							{
+								"begin": 1066,
+								"end": 1675,
+								"name": "JUMPI"
+							},
+							{
+								"begin": 1066,
+								"end": 1675,
+								"name": "INVALID"
+							},
+							{
+								"begin": 1066,
+								"end": 1675,
+								"name": "tag",
+								"value": "23"
+							},
+							{
+								"begin": 1066,
+								"end": 1675,
+								"name": "JUMPDEST"
+							},
+							{
+								"begin": 1066,
+								"end": 1675,
+								"name": "PUSH [tag]",
+								"value": "18"
+							},
+							{
+								"begin": 1066,
+								"end": 1675,
+								"name": "PUSH",
+								"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
+							},
+							{
+								"begin": 1066,
+								"end": 1675,
+								"name": "PUSH",
+								"value": "4"
+							},
+							{
+								"begin": 1066,
+								"end": 1675,
+								"name": "CALLDATALOAD"
+							},
+							{
+								"begin": 1066,
+								"end": 1675,
+								"name": "DUP2"
+							},
+							{
+								"begin": 1066,
+								"end": 1675,
+								"name": "AND"
+							},
+							{
+								"begin": 1066,
+								"end": 1675,
+								"name": "SWAP1"
+							},
+							{
+								"begin": 1066,
+								"end": 1675,
+								"name": "PUSH",
+								"value": "24"
+							},
+							{
+								"begin": 1066,
+								"end": 1675,
+								"name": "CALLDATALOAD"
+							},
+							{
+								"begin": 1066,
+								"end": 1675,
+								"name": "AND"
+							},
+							{
+								"begin": 1066,
+								"end": 1675,
+								"name": "PUSH",
+								"value": "44"
+							},
+							{
+								"begin": 1066,
+								"end": 1675,
+								"name": "CALLDATALOAD"
+							},
+							{
+								"begin": 1066,
+								"end": 1675,
+								"name": "PUSH [tag]",
+								"value": "25"
+							},
+							{
+								"begin": 1066,
+								"end": 1675,
+								"name": "JUMP"
+							},
+							{
+								"begin": 1066,
+								"end": 1675,
+								"name": "tag",
+								"value": "24"
+							},
+							{
+								"begin": 1066,
+								"end": 1675,
+								"name": "JUMPDEST"
+							},
+							{
+								"begin": 1066,
+								"end": 1675,
+								"name": "PUSH",
+								"value": "40"
+							},
+							{
+								"begin": 1066,
+								"end": 1675,
+								"name": "DUP1"
+							},
+							{
+								"begin": 1066,
+								"end": 1675,
+								"name": "MLOAD"
+							},
+							{
+								"begin": 1066,
+								"end": 1675,
+								"name": "SWAP2"
+							},
+							{
+								"begin": 1066,
+								"end": 1675,
+								"name": "ISZERO"
+							},
+							{
+								"begin": 1066,
+								"end": 1675,
+								"name": "ISZERO"
+							},
+							{
+								"begin": 1066,
+								"end": 1675,
+								"name": "DUP3"
+							},
+							{
+								"begin": 1066,
+								"end": 1675,
+								"name": "MSTORE"
+							},
+							{
+								"begin": 1066,
+								"end": 1675,
+								"name": "MLOAD"
+							},
+							{
+								"begin": 1066,
+								"end": 1675,
+								"name": "SWAP1"
+							},
+							{
+								"begin": 1066,
+								"end": 1675,
+								"name": "DUP2"
+							},
+							{
+								"begin": 1066,
+								"end": 1675,
+								"name": "SWAP1"
+							},
+							{
+								"begin": 1066,
+								"end": 1675,
+								"name": "SUB"
+							},
+							{
+								"begin": 1066,
+								"end": 1675,
+								"name": "PUSH",
+								"value": "20"
+							},
+							{
+								"begin": 1066,
+								"end": 1675,
+								"name": "ADD"
+							},
+							{
+								"begin": 1066,
+								"end": 1675,
+								"name": "SWAP1"
+							},
+							{
+								"begin": 1066,
+								"end": 1675,
+								"name": "RETURN"
+							},
+							{
+								"begin": 891,
+								"end": 926,
+								"name": "tag",
+								"value": "6"
+							},
+							{
+								"begin": 891,
+								"end": 926,
+								"name": "JUMPDEST"
+							},
+							{
+								"begin": 891,
+								"end": 926,
+								"name": "CALLVALUE"
+							},
+							{
+								"begin": 891,
+								"end": 926,
+								"name": "ISZERO"
+							},
+							{
+								"begin": 891,
+								"end": 926,
+								"name": "PUSH [tag]",
+								"value": "26"
+							},
+							{
+								"begin": 891,
+								"end": 926,
+								"name": "JUMPI"
+							},
+							{
+								"begin": 891,
+								"end": 926,
+								"name": "INVALID"
+							},
+							{
+								"begin": 891,
+								"end": 926,
+								"name": "tag",
+								"value": "26"
+							},
+							{
+								"begin": 891,
+								"end": 926,
+								"name": "JUMPDEST"
+							},
+							{
+								"begin": 891,
+								"end": 926,
+								"name": "PUSH [tag]",
+								"value": "27"
+							},
+							{
+								"begin": 891,
+								"end": 926,
+								"name": "PUSH [tag]",
+								"value": "28"
+							},
+							{
+								"begin": 891,
+								"end": 926,
+								"name": "JUMP"
+							},
+							{
+								"begin": 891,
+								"end": 926,
+								"name": "tag",
+								"value": "27"
+							},
+							{
+								"begin": 891,
+								"end": 926,
+								"name": "JUMPDEST"
+							},
+							{
+								"begin": 891,
+								"end": 926,
+								"name": "PUSH",
+								"value": "40"
+							},
+							{
+								"begin": 891,
+								"end": 926,
+								"name": "DUP1"
+							},
+							{
+								"begin": 891,
+								"end": 926,
+								"name": "MLOAD"
+							},
+							{
+								"begin": 891,
+								"end": 926,
+								"name": "PUSH",
+								"value": "FF"
+							},
+							{
+								"begin": 891,
+								"end": 926,
+								"name": "SWAP1"
+							},
+							{
+								"begin": 891,
+								"end": 926,
+								"name": "SWAP3"
+							},
+							{
+								"begin": 891,
+								"end": 926,
+								"name": "AND"
+							},
+							{
+								"begin": 891,
+								"end": 926,
+								"name": "DUP3"
+							},
+							{
+								"begin": 891,
+								"end": 926,
+								"name": "MSTORE"
+							},
+							{
+								"begin": 891,
+								"end": 926,
+								"name": "MLOAD"
+							},
+							{
+								"begin": 891,
+								"end": 926,
+								"name": "SWAP1"
+							},
+							{
+								"begin": 891,
+								"end": 926,
+								"name": "DUP2"
+							},
+							{
+								"begin": 891,
+								"end": 926,
+								"name": "SWAP1"
+							},
+							{
+								"begin": 891,
+								"end": 926,
+								"name": "SUB"
+							},
+							{
+								"begin": 891,
+								"end": 926,
+								"name": "PUSH",
+								"value": "20"
+							},
+							{
+								"begin": 891,
+								"end": 926,
+								"name": "ADD"
+							},
+							{
+								"begin": 891,
+								"end": 926,
+								"name": "SWAP1"
+							},
+							{
+								"begin": 891,
+								"end": 926,
+								"name": "RETURN"
+							},
+							{
+								"begin": 982,
+								"end": 1081,
+								"name": "tag",
+								"value": "7"
+							},
+							{
+								"begin": 982,
+								"end": 1081,
+								"name": "JUMPDEST"
+							},
+							{
+								"begin": 982,
+								"end": 1081,
+								"name": "CALLVALUE"
+							},
+							{
+								"begin": 982,
+								"end": 1081,
+								"name": "ISZERO"
+							},
+							{
+								"begin": 982,
+								"end": 1081,
+								"name": "PUSH [tag]",
+								"value": "29"
+							},
+							{
+								"begin": 982,
+								"end": 1081,
+								"name": "JUMPI"
+							},
+							{
+								"begin": 982,
+								"end": 1081,
+								"name": "INVALID"
+							},
+							{
+								"begin": 982,
+								"end": 1081,
+								"name": "tag",
+								"value": "29"
+							},
+							{
+								"begin": 982,
+								"end": 1081,
+								"name": "JUMPDEST"
+							},
+							{
+								"begin": 982,
+								"end": 1081,
+								"name": "PUSH [tag]",
+								"value": "21"
+							},
+							{
+								"begin": 982,
+								"end": 1081,
+								"name": "PUSH",
+								"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
+							},
+							{
+								"begin": 982,
+								"end": 1081,
+								"name": "PUSH",
+								"value": "4"
+							},
+							{
+								"begin": 982,
+								"end": 1081,
+								"name": "CALLDATALOAD"
+							},
+							{
+								"begin": 982,
+								"end": 1081,
+								"name": "AND"
+							},
+							{
+								"begin": 982,
+								"end": 1081,
+								"name": "PUSH [tag]",
+								"value": "31"
+							},
+							{
+								"begin": 982,
+								"end": 1081,
+								"name": "JUMP"
+							},
+							{
+								"begin": 982,
+								"end": 1081,
+								"name": "tag",
+								"value": "30"
+							},
+							{
+								"begin": 982,
+								"end": 1081,
+								"name": "JUMPDEST"
+							},
+							{
+								"begin": 982,
+								"end": 1081,
+								"name": "PUSH",
+								"value": "40"
+							},
+							{
+								"begin": 982,
+								"end": 1081,
+								"name": "DUP1"
+							},
+							{
+								"begin": 982,
+								"end": 1081,
+								"name": "MLOAD"
+							},
+							{
+								"begin": 982,
+								"end": 1081,
+								"name": "SWAP2"
+							},
+							{
+								"begin": 982,
+								"end": 1081,
+								"name": "DUP3"
+							},
+							{
+								"begin": 982,
+								"end": 1081,
+								"name": "MSTORE"
+							},
+							{
+								"begin": 982,
+								"end": 1081,
+								"name": "MLOAD"
+							},
+							{
+								"begin": 982,
+								"end": 1081,
+								"name": "SWAP1"
+							},
+							{
+								"begin": 982,
+								"end": 1081,
+								"name": "DUP2"
+							},
+							{
+								"begin": 982,
+								"end": 1081,
+								"name": "SWAP1"
+							},
+							{
+								"begin": 982,
+								"end": 1081,
+								"name": "SUB"
+							},
+							{
+								"begin": 982,
+								"end": 1081,
+								"name": "PUSH",
+								"value": "20"
+							},
+							{
+								"begin": 982,
+								"end": 1081,
+								"name": "ADD"
+							},
+							{
+								"begin": 982,
+								"end": 1081,
+								"name": "SWAP1"
+							},
+							{
+								"begin": 982,
+								"end": 1081,
+								"name": "RETURN"
+							},
+							{
+								"begin": 1064,
+								"end": 1101,
+								"name": "tag",
+								"value": "8"
+							},
+							{
+								"begin": 1064,
+								"end": 1101,
+								"name": "JUMPDEST"
+							},
+							{
+								"begin": 1064,
+								"end": 1101,
+								"name": "CALLVALUE"
+							},
+							{
+								"begin": 1064,
+								"end": 1101,
+								"name": "ISZERO"
+							},
+							{
+								"begin": 1064,
+								"end": 1101,
+								"name": "PUSH [tag]",
+								"value": "32"
+							},
+							{
+								"begin": 1064,
+								"end": 1101,
+								"name": "JUMPI"
+							},
+							{
+								"begin": 1064,
+								"end": 1101,
+								"name": "INVALID"
+							},
+							{
+								"begin": 1064,
+								"end": 1101,
+								"name": "tag",
+								"value": "32"
+							},
+							{
+								"begin": 1064,
+								"end": 1101,
+								"name": "JUMPDEST"
+							},
+							{
+								"begin": 1064,
+								"end": 1101,
+								"name": "PUSH [tag]",
+								"value": "12"
+							},
+							{
+								"begin": 1064,
+								"end": 1101,
+								"name": "PUSH [tag]",
+								"value": "34"
+							},
+							{
+								"begin": 1064,
+								"end": 1101,
+								"name": "JUMP"
+							},
+							{
+								"begin": 1064,
+								"end": 1101,
+								"name": "tag",
+								"value": "33"
+							},
+							{
+								"begin": 1064,
+								"end": 1101,
+								"name": "JUMPDEST"
+							},
+							{
+								"begin": 1064,
+								"end": 1101,
+								"name": "PUSH",
+								"value": "40"
+							},
+							{
+								"begin": 1064,
+								"end": 1101,
+								"name": "DUP1"
+							},
+							{
+								"begin": 1064,
+								"end": 1101,
+								"name": "MLOAD"
+							},
+							{
+								"begin": 1064,
+								"end": 1101,
+								"name": "PUSH",
+								"value": "20"
+							},
+							{
+								"begin": 1064,
+								"end": 1101,
+								"name": "DUP1"
+							},
+							{
+								"begin": 1064,
+								"end": 1101,
+								"name": "DUP3"
+							},
+							{
+								"begin": 1064,
+								"end": 1101,
+								"name": "MSTORE"
+							},
+							{
+								"begin": 1064,
+								"end": 1101,
+								"name": "DUP4"
+							},
+							{
+								"begin": 1064,
+								"end": 1101,
+								"name": "MLOAD"
+							},
+							{
+								"begin": 1064,
+								"end": 1101,
+								"name": "DUP2"
+							},
+							{
+								"begin": 1064,
+								"end": 1101,
+								"name": "DUP4"
+							},
+							{
+								"begin": 1064,
+								"end": 1101,
+								"name": "ADD"
+							},
+							{
+								"begin": 1064,
+								"end": 1101,
+								"name": "MSTORE"
+							},
+							{
+								"begin": 1064,
+								"end": 1101,
+								"name": "DUP4"
+							},
+							{
+								"begin": 1064,
+								"end": 1101,
+								"name": "MLOAD"
+							},
+							{
+								"begin": 1064,
+								"end": 1101,
+								"name": "SWAP2"
+							},
+							{
+								"begin": 1064,
+								"end": 1101,
+								"name": "SWAP3"
+							},
+							{
+								"begin": 1064,
+								"end": 1101,
+								"name": "DUP4"
+							},
+							{
+								"begin": 1064,
+								"end": 1101,
+								"name": "SWAP3"
+							},
+							{
+								"begin": 1064,
+								"end": 1101,
+								"name": "SWAP1"
+							},
+							{
+								"begin": 1064,
+								"end": 1101,
+								"name": "DUP4"
+							},
+							{
+								"begin": 1064,
+								"end": 1101,
+								"name": "ADD"
+							},
+							{
+								"begin": 1064,
+								"end": 1101,
+								"name": "SWAP2"
+							},
+							{
+								"begin": 1064,
+								"end": 1101,
+								"name": "DUP6"
+							},
+							{
+								"begin": 1064,
+								"end": 1101,
+								"name": "ADD"
+							},
+							{
+								"begin": 1064,
+								"end": 1101,
+								"name": "SWAP1"
+							},
+							{
+								"begin": 1064,
+								"end": 1101,
+								"name": "DUP1"
+							},
+							{
+								"begin": 1064,
+								"end": 1101,
+								"name": "DUP4"
+							},
+							{
+								"begin": 1064,
+								"end": 1101,
+								"name": "DUP4"
+							},
+							{
+								"begin": 18,
+								"end": 20,
+								"name": "DUP3"
+							},
+							{
+								"begin": 18,
+								"end": 20,
+								"name": "ISZERO"
+							},
+							{
+								"begin": 13,
+								"end": 16,
+								"name": "PUSH [tag]",
+								"value": "14"
+							},
+							{
+								"begin": 7,
+								"end": 12,
+								"name": "JUMPI"
+							},
+							{
+								"begin": 32,
+								"end": 37,
+								"name": "tag",
+								"value": "36"
+							},
+							{
+								"begin": 32,
+								"end": 37,
+								"name": "JUMPDEST"
+							},
+							{
+								"begin": 59,
+								"end": 62,
+								"name": "DUP1"
+							},
+							{
+								"begin": 53,
+								"end": 58,
+								"name": "MLOAD"
+							},
+							{
+								"begin": 48,
+								"end": 51,
+								"name": "DUP3"
+							},
+							{
+								"begin": 41,
+								"end": 47,
+								"name": "MSTORE"
+							},
+							{
+								"begin": 93,
+								"end": 95,
+								"name": "PUSH",
+								"value": "20"
+							},
+							{
+								"begin": 88,
+								"end": 91,
+								"name": "DUP4"
+							},
+							{
+								"begin": 85,
+								"end": 87,
+								"name": "GT"
+							},
+							{
+								"begin": 78,
+								"end": 84,
+								"name": "ISZERO"
+							},
+							{
+								"begin": 73,
+								"end": 76,
+								"name": "PUSH [tag]",
+								"value": "14"
+							},
+							{
+								"begin": 67,
+								"end": 72,
+								"name": "JUMPI"
+							},
+							{
+								"begin": 152,
+								"end": 155,
+								"name": "PUSH",
+								"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0"
+							},
+							{
+								"begin": 152,
+								"end": 155,
+								"name": "SWAP1"
+							},
+							{
+								"begin": 152,
+								"end": 155,
+								"name": "SWAP3"
+							},
+							{
+								"begin": 152,
+								"end": 155,
+								"name": "ADD"
+							},
+							{
+								"begin": 152,
+								"end": 155,
+								"name": "SWAP2"
+							},
+							{
+								"begin": 117,
+								"end": 119,
+								"name": "PUSH",
+								"value": "20"
+							},
+							{
+								"begin": 108,
+								"end": 111,
+								"name": "SWAP2"
+							},
+							{
+								"begin": 108,
+								"end": 111,
+								"name": "DUP3"
+							},
+							{
+								"begin": 108,
+								"end": 111,
+								"name": "ADD"
+							},
+							{
+								"begin": 108,
+								"end": 111,
+								"name": "SWAP2"
+							},
+							{
+								"begin": 130,
+								"end": 133,
+								"name": "ADD"
+							},
+							{
+								"begin": 172,
+								"end": 177,
+								"name": "PUSH [tag]",
+								"value": "15"
+							},
+							{
+								"begin": 167,
+								"end": 171,
+								"name": "JUMP"
+							},
+							{
+								"begin": 181,
+								"end": 184,
+								"name": "tag",
+								"value": "35"
+							},
+							{
+								"begin": 181,
+								"end": 184,
+								"name": "JUMPDEST"
+							},
+							{
+								"begin": 3,
+								"end": 189,
+								"name": "POP"
+							},
+							{
+								"begin": 3,
+								"end": 189,
+								"name": "POP"
+							},
+							{
+								"begin": 3,
+								"end": 189,
+								"name": "POP"
+							},
+							{
+								"begin": 3,
+								"end": 189,
+								"name": "SWAP1"
+							},
+							{
+								"begin": 3,
+								"end": 189,
+								"name": "POP"
+							},
+							{
+								"begin": 3,
+								"end": 189,
+								"name": "SWAP1"
+							},
+							{
+								"begin": 3,
+								"end": 189,
+								"name": "DUP2"
+							},
+							{
+								"begin": 3,
+								"end": 189,
+								"name": "ADD"
+							},
+							{
+								"begin": 3,
+								"end": 189,
+								"name": "SWAP1"
+							},
+							{
+								"begin": 3,
+								"end": 189,
+								"name": "PUSH",
+								"value": "1F"
+							},
+							{
+								"begin": 3,
+								"end": 189,
+								"name": "AND"
+							},
+							{
+								"begin": 3,
+								"end": 189,
+								"name": "DUP1"
+							},
+							{
+								"begin": 3,
+								"end": 189,
+								"name": "ISZERO"
+							},
+							{
+								"begin": 3,
+								"end": 189,
+								"name": "PUSH [tag]",
+								"value": "16"
+							},
+							{
+								"begin": 3,
+								"end": 189,
+								"name": "JUMPI"
+							},
+							{
+								"begin": 3,
+								"end": 189,
+								"name": "DUP1"
+							},
+							{
+								"begin": 3,
+								"end": 189,
+								"name": "DUP3"
+							},
+							{
+								"begin": 3,
+								"end": 189,
+								"name": "SUB"
+							},
+							{
+								"begin": 3,
+								"end": 189,
+								"name": "DUP1"
+							},
+							{
+								"begin": 3,
+								"end": 189,
+								"name": "MLOAD"
+							},
+							{
+								"begin": 3,
+								"end": 189,
+								"name": "PUSH",
+								"value": "1"
+							},
+							{
+								"begin": 3,
+								"end": 189,
+								"name": "DUP4"
+							},
+							{
+								"begin": 3,
+								"end": 189,
+								"name": "PUSH",
+								"value": "20"
+							},
+							{
+								"begin": 3,
+								"end": 189,
+								"name": "SUB"
+							},
+							{
+								"begin": 3,
+								"end": 189,
+								"name": "PUSH",
+								"value": "100"
+							},
+							{
+								"begin": 3,
+								"end": 189,
+								"name": "EXP"
+							},
+							{
+								"begin": 3,
+								"end": 189,
+								"name": "SUB"
+							},
+							{
+								"begin": 3,
+								"end": 189,
+								"name": "NOT"
+							},
+							{
+								"begin": 3,
+								"end": 189,
+								"name": "AND"
+							},
+							{
+								"begin": 3,
+								"end": 189,
+								"name": "DUP2"
+							},
+							{
+								"begin": 3,
+								"end": 189,
+								"name": "MSTORE"
+							},
+							{
+								"begin": 3,
+								"end": 189,
+								"name": "PUSH",
+								"value": "20"
+							},
+							{
+								"begin": 3,
+								"end": 189,
+								"name": "ADD"
+							},
+							{
+								"begin": 3,
+								"end": 189,
+								"name": "SWAP2"
+							},
+							{
+								"begin": 3,
+								"end": 189,
+								"name": "POP"
+							},
+							{
+								"begin": 3,
+								"end": 189,
+								"name": "tag",
+								"value": "37"
+							},
+							{
+								"begin": 3,
+								"end": 189,
+								"name": "JUMPDEST"
+							},
+							{
+								"begin": 3,
+								"end": 189,
+								"name": "POP"
+							},
+							{
+								"begin": 3,
+								"end": 189,
+								"name": "SWAP3"
+							},
+							{
+								"begin": 3,
+								"end": 189,
+								"name": "POP"
+							},
+							{
+								"begin": 3,
+								"end": 189,
+								"name": "POP"
+							},
+							{
+								"begin": 3,
+								"end": 189,
+								"name": "POP"
+							},
+							{
+								"begin": 3,
+								"end": 189,
+								"name": "PUSH",
+								"value": "40"
+							},
+							{
+								"begin": 3,
+								"end": 189,
+								"name": "MLOAD"
+							},
+							{
+								"begin": 3,
+								"end": 189,
+								"name": "DUP1"
+							},
+							{
+								"begin": 3,
+								"end": 189,
+								"name": "SWAP2"
+							},
+							{
+								"begin": 3,
+								"end": 189,
+								"name": "SUB"
+							},
+							{
+								"begin": 3,
+								"end": 189,
+								"name": "SWAP1"
+							},
+							{
+								"begin": 3,
+								"end": 189,
+								"name": "RETURN"
+							},
+							{
+								"begin": 125,
+								"end": 535,
+								"name": "tag",
+								"value": "9"
+							},
+							{
+								"begin": 125,
+								"end": 535,
+								"name": "JUMPDEST"
+							},
+							{
+								"begin": 125,
+								"end": 535,
+								"name": "CALLVALUE"
+							},
+							{
+								"begin": 125,
+								"end": 535,
+								"name": "ISZERO"
+							},
+							{
+								"begin": 125,
+								"end": 535,
+								"name": "PUSH [tag]",
+								"value": "38"
+							},
+							{
+								"begin": 125,
+								"end": 535,
+								"name": "JUMPI"
+							},
+							{
+								"begin": 125,
+								"end": 535,
+								"name": "INVALID"
+							},
+							{
+								"begin": 125,
+								"end": 535,
+								"name": "tag",
+								"value": "38"
+							},
+							{
+								"begin": 125,
+								"end": 535,
+								"name": "JUMPDEST"
+							},
+							{
+								"begin": 125,
+								"end": 535,
+								"name": "PUSH [tag]",
+								"value": "18"
+							},
+							{
+								"begin": 125,
+								"end": 535,
+								"name": "PUSH",
+								"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
+							},
+							{
+								"begin": 125,
+								"end": 535,
+								"name": "PUSH",
+								"value": "4"
+							},
+							{
+								"begin": 125,
+								"end": 535,
+								"name": "CALLDATALOAD"
+							},
+							{
+								"begin": 125,
+								"end": 535,
+								"name": "AND"
+							},
+							{
+								"begin": 125,
+								"end": 535,
+								"name": "PUSH",
+								"value": "24"
+							},
+							{
+								"begin": 125,
+								"end": 535,
+								"name": "CALLDATALOAD"
+							},
+							{
+								"begin": 125,
+								"end": 535,
+								"name": "PUSH [tag]",
+								"value": "40"
+							},
+							{
+								"begin": 125,
+								"end": 535,
+								"name": "JUMP"
+							},
+							{
+								"begin": 125,
+								"end": 535,
+								"name": "tag",
+								"value": "39"
+							},
+							{
+								"begin": 125,
+								"end": 535,
+								"name": "JUMPDEST"
+							},
+							{
+								"begin": 125,
+								"end": 535,
+								"name": "PUSH",
+								"value": "40"
+							},
+							{
+								"begin": 125,
+								"end": 535,
+								"name": "DUP1"
+							},
+							{
+								"begin": 125,
+								"end": 535,
+								"name": "MLOAD"
+							},
+							{
+								"begin": 125,
+								"end": 535,
+								"name": "SWAP2"
+							},
+							{
+								"begin": 125,
+								"end": 535,
+								"name": "ISZERO"
+							},
+							{
+								"begin": 125,
+								"end": 535,
+								"name": "ISZERO"
+							},
+							{
+								"begin": 125,
+								"end": 535,
+								"name": "DUP3"
+							},
+							{
+								"begin": 125,
+								"end": 535,
+								"name": "MSTORE"
+							},
+							{
+								"begin": 125,
+								"end": 535,
+								"name": "MLOAD"
+							},
+							{
+								"begin": 125,
+								"end": 535,
+								"name": "SWAP1"
+							},
+							{
+								"begin": 125,
+								"end": 535,
+								"name": "DUP2"
+							},
+							{
+								"begin": 125,
+								"end": 535,
+								"name": "SWAP1"
+							},
+							{
+								"begin": 125,
+								"end": 535,
+								"name": "SUB"
+							},
+							{
+								"begin": 125,
+								"end": 535,
+								"name": "PUSH",
+								"value": "20"
+							},
+							{
+								"begin": 125,
+								"end": 535,
+								"name": "ADD"
+							},
+							{
+								"begin": 125,
+								"end": 535,
+								"name": "SWAP1"
+							},
+							{
+								"begin": 125,
+								"end": 535,
+								"name": "RETURN"
+							},
+							{
+								"begin": 1280,
+								"end": 1406,
+								"name": "tag",
+								"value": "10"
+							},
+							{
+								"begin": 1280,
+								"end": 1406,
+								"name": "JUMPDEST"
+							},
+							{
+								"begin": 1280,
+								"end": 1406,
+								"name": "CALLVALUE"
+							},
+							{
+								"begin": 1280,
+								"end": 1406,
+								"name": "ISZERO"
+							},
+							{
+								"begin": 1280,
+								"end": 1406,
+								"name": "PUSH [tag]",
+								"value": "41"
+							},
+							{
+								"begin": 1280,
+								"end": 1406,
+								"name": "JUMPI"
+							},
+							{
+								"begin": 1280,
+								"end": 1406,
+								"name": "INVALID"
+							},
+							{
+								"begin": 1280,
+								"end": 1406,
+								"name": "tag",
+								"value": "41"
+							},
+							{
+								"begin": 1280,
+								"end": 1406,
+								"name": "JUMPDEST"
+							},
+							{
+								"begin": 1280,
+								"end": 1406,
+								"name": "PUSH [tag]",
+								"value": "21"
+							},
+							{
+								"begin": 1280,
+								"end": 1406,
+								"name": "PUSH",
+								"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
+							},
+							{
+								"begin": 1280,
+								"end": 1406,
+								"name": "PUSH",
+								"value": "4"
+							},
+							{
+								"begin": 1280,
+								"end": 1406,
+								"name": "CALLDATALOAD"
+							},
+							{
+								"begin": 1280,
+								"end": 1406,
+								"name": "DUP2"
+							},
+							{
+								"begin": 1280,
+								"end": 1406,
+								"name": "AND"
+							},
+							{
+								"begin": 1280,
+								"end": 1406,
+								"name": "SWAP1"
+							},
+							{
+								"begin": 1280,
+								"end": 1406,
+								"name": "PUSH",
+								"value": "24"
+							},
+							{
+								"begin": 1280,
+								"end": 1406,
+								"name": "CALLDATALOAD"
+							},
+							{
+								"begin": 1280,
+								"end": 1406,
+								"name": "AND"
+							},
+							{
+								"begin": 1280,
+								"end": 1406,
+								"name": "PUSH [tag]",
+								"value": "43"
+							},
+							{
+								"begin": 1280,
+								"end": 1406,
+								"name": "JUMP"
+							},
+							{
+								"begin": 1280,
+								"end": 1406,
+								"name": "tag",
+								"value": "42"
+							},
+							{
+								"begin": 1280,
+								"end": 1406,
+								"name": "JUMPDEST"
+							},
+							{
+								"begin": 1280,
+								"end": 1406,
+								"name": "PUSH",
+								"value": "40"
+							},
+							{
+								"begin": 1280,
+								"end": 1406,
+								"name": "DUP1"
+							},
+							{
+								"begin": 1280,
+								"end": 1406,
+								"name": "MLOAD"
+							},
+							{
+								"begin": 1280,
+								"end": 1406,
+								"name": "SWAP2"
+							},
+							{
+								"begin": 1280,
+								"end": 1406,
+								"name": "DUP3"
+							},
+							{
+								"begin": 1280,
+								"end": 1406,
+								"name": "MSTORE"
+							},
+							{
+								"begin": 1280,
+								"end": 1406,
+								"name": "MLOAD"
+							},
+							{
+								"begin": 1280,
+								"end": 1406,
+								"name": "SWAP1"
+							},
+							{
+								"begin": 1280,
+								"end": 1406,
+								"name": "DUP2"
+							},
+							{
+								"begin": 1280,
+								"end": 1406,
+								"name": "SWAP1"
+							},
+							{
+								"begin": 1280,
+								"end": 1406,
+								"name": "SUB"
+							},
+							{
+								"begin": 1280,
+								"end": 1406,
+								"name": "PUSH",
+								"value": "20"
+							},
+							{
+								"begin": 1280,
+								"end": 1406,
+								"name": "ADD"
+							},
+							{
+								"begin": 1280,
+								"end": 1406,
+								"name": "SWAP1"
+							},
+							{
+								"begin": 1280,
+								"end": 1406,
+								"name": "RETURN"
+							},
+							{
+								"begin": 1009,
+								"end": 1058,
+								"name": "tag",
+								"value": "13"
+							},
+							{
+								"begin": 1009,
+								"end": 1058,
+								"name": "JUMPDEST"
+							},
+							{
+								"begin": 1009,
+								"end": 1058,
+								"name": "PUSH",
+								"value": "40"
+							},
+							{
+								"begin": 1009,
+								"end": 1058,
+								"name": "DUP1"
+							},
+							{
+								"begin": 1009,
+								"end": 1058,
+								"name": "MLOAD"
+							},
+							{
+								"begin": 1009,
+								"end": 1058,
+								"name": "DUP1"
+							},
+							{
+								"begin": 1009,
+								"end": 1058,
+								"name": "DUP3"
+							},
+							{
+								"begin": 1009,
+								"end": 1058,
+								"name": "ADD"
+							},
+							{
+								"begin": 1009,
+								"end": 1058,
+								"name": "SWAP1"
+							},
+							{
+								"begin": 1009,
+								"end": 1058,
+								"name": "SWAP2"
+							},
+							{
+								"begin": 1009,
+								"end": 1058,
+								"name": "MSTORE"
+							},
+							{
+								"begin": 1009,
+								"end": 1058,
+								"name": "PUSH",
+								"value": "11"
+							},
+							{
+								"begin": 1009,
+								"end": 1058,
+								"name": "DUP2"
+							},
+							{
+								"begin": 1009,
+								"end": 1058,
+								"name": "MSTORE"
+							},
+							{
+								"begin": 1009,
+								"end": 1058,
+								"name": "PUSH",
+								"value": "30782050726F746F636F6C20546F6B656E000000000000000000000000000000"
+							},
+							{
+								"begin": 1009,
+								"end": 1058,
+								"name": "PUSH",
+								"value": "20"
+							},
+							{
+								"begin": 1009,
+								"end": 1058,
+								"name": "DUP3"
+							},
+							{
+								"begin": 1009,
+								"end": 1058,
+								"name": "ADD"
+							},
+							{
+								"begin": 1009,
+								"end": 1058,
+								"name": "MSTORE"
+							},
+							{
+								"begin": 1009,
+								"end": 1058,
+								"name": "DUP2"
+							},
+							{
+								"begin": 1009,
+								"end": 1058,
+								"name": "JUMP",
+								"value": "[out]"
+							},
+							{
+								"begin": 1087,
+								"end": 1274,
+								"name": "tag",
+								"value": "19"
+							},
+							{
+								"begin": 1087,
+								"end": 1274,
+								"name": "JUMPDEST"
+							},
+							{
+								"begin": 1160,
+								"end": 1179,
+								"name": "PUSH",
+								"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
+							},
+							{
+								"begin": 1168,
+								"end": 1178,
+								"name": "CALLER"
+							},
+							{
+								"begin": 1160,
+								"end": 1179,
+								"name": "DUP2"
+							},
+							{
+								"begin": 1160,
+								"end": 1179,
+								"name": "AND"
+							},
+							{
+								"begin": 1144,
+								"end": 1148,
+								"name": "PUSH",
+								"value": "0"
+							},
+							{
+								"begin": 1160,
+								"end": 1179,
+								"name": "DUP2"
+							},
+							{
+								"begin": 1160,
+								"end": 1179,
+								"name": "DUP2"
+							},
+							{
+								"begin": 1160,
+								"end": 1179,
+								"name": "MSTORE"
+							},
+							{
+								"begin": 1160,
+								"end": 1167,
+								"name": "PUSH",
+								"value": "1"
+							},
+							{
+								"begin": 1160,
+								"end": 1179,
+								"name": "PUSH",
+								"value": "20"
+							},
+							{
+								"begin": 1160,
+								"end": 1179,
+								"name": "SWAP1"
+							},
+							{
+								"begin": 1160,
+								"end": 1179,
+								"name": "DUP2"
+							},
+							{
+								"begin": 1160,
+								"end": 1179,
+								"name": "MSTORE"
+							},
+							{
+								"begin": 1160,
+								"end": 1179,
+								"name": "PUSH",
+								"value": "40"
+							},
+							{
+								"begin": 1160,
+								"end": 1179,
+								"name": "DUP1"
+							},
+							{
+								"begin": 1160,
+								"end": 1179,
+								"name": "DUP4"
+							},
+							{
+								"begin": 1160,
+								"end": 1179,
+								"name": "SHA3"
+							},
+							{
+								"begin": 1160,
+								"end": 1189,
+								"name": "SWAP5"
+							},
+							{
+								"begin": 1160,
+								"end": 1189,
+								"name": "DUP8"
+							},
+							{
+								"begin": 1160,
+								"end": 1189,
+								"name": "AND"
+							},
+							{
+								"begin": 1160,
+								"end": 1189,
+								"name": "DUP1"
+							},
+							{
+								"begin": 1160,
+								"end": 1189,
+								"name": "DUP5"
+							},
+							{
+								"begin": 1160,
+								"end": 1189,
+								"name": "MSTORE"
+							},
+							{
+								"begin": 1160,
+								"end": 1189,
+								"name": "SWAP5"
+							},
+							{
+								"begin": 1160,
+								"end": 1189,
+								"name": "DUP3"
+							},
+							{
+								"begin": 1160,
+								"end": 1189,
+								"name": "MSTORE"
+							},
+							{
+								"begin": 1160,
+								"end": 1189,
+								"name": "DUP1"
+							},
+							{
+								"begin": 1160,
+								"end": 1189,
+								"name": "DUP4"
+							},
+							{
+								"begin": 1160,
+								"end": 1189,
+								"name": "SHA3"
+							},
+							{
+								"begin": 1160,
+								"end": 1198,
+								"name": "DUP7"
+							},
+							{
+								"begin": 1160,
+								"end": 1198,
+								"name": "SWAP1"
+							},
+							{
+								"begin": 1160,
+								"end": 1198,
+								"name": "SSTORE"
+							},
+							{
+								"begin": 1208,
+								"end": 1246,
+								"name": "DUP1"
+							},
+							{
+								"begin": 1208,
+								"end": 1246,
+								"name": "MLOAD"
+							},
+							{
+								"begin": 1208,
+								"end": 1246,
+								"name": "DUP7"
+							},
+							{
+								"begin": 1208,
+								"end": 1246,
+								"name": "DUP2"
+							},
+							{
+								"begin": 1208,
+								"end": 1246,
+								"name": "MSTORE"
+							},
+							{
+								"begin": 1208,
+								"end": 1246,
+								"name": "SWAP1"
+							},
+							{
+								"begin": 1208,
+								"end": 1246,
+								"name": "MLOAD"
+							},
+							{
+								"begin": 1144,
+								"end": 1148,
+								"name": "SWAP3"
+							},
+							{
+								"begin": 1144,
+								"end": 1148,
+								"name": "SWAP5"
+							},
+							{
+								"begin": 1160,
+								"end": 1189,
+								"name": "SWAP4"
+							},
+							{
+								"begin": 1160,
+								"end": 1179,
+								"name": "SWAP3"
+							},
+							{
+								"begin": 1208,
+								"end": 1246,
+								"name": "PUSH",
+								"value": "8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925"
+							},
+							{
+								"begin": 1208,
+								"end": 1246,
+								"name": "SWAP3"
+							},
+							{
+								"begin": 1208,
+								"end": 1246,
+								"name": "SWAP2"
+							},
+							{
+								"begin": 1208,
+								"end": 1246,
+								"name": "DUP2"
+							},
+							{
+								"begin": 1208,
+								"end": 1246,
+								"name": "SWAP1"
+							},
+							{
+								"begin": 1208,
+								"end": 1246,
+								"name": "SUB"
+							},
+							{
+								"begin": 1208,
+								"end": 1246,
+								"name": "SWAP1"
+							},
+							{
+								"begin": 1208,
+								"end": 1246,
+								"name": "SWAP2"
+							},
+							{
+								"begin": 1208,
+								"end": 1246,
+								"name": "ADD"
+							},
+							{
+								"begin": 1208,
+								"end": 1246,
+								"name": "SWAP1"
+							},
+							{
+								"begin": 1208,
+								"end": 1246,
+								"name": "LOG3"
+							},
+							{
+								"begin": -1,
+								"end": -1,
+								"name": "POP"
+							},
+							{
+								"begin": 1263,
+								"end": 1267,
+								"name": "PUSH",
+								"value": "1"
+							},
+							{
+								"begin": 1087,
+								"end": 1274,
+								"name": "tag",
+								"value": "44"
+							},
+							{
+								"begin": 1087,
+								"end": 1274,
+								"name": "JUMPDEST"
+							},
+							{
+								"begin": 1087,
+								"end": 1274,
+								"name": "SWAP3"
+							},
+							{
+								"begin": 1087,
+								"end": 1274,
+								"name": "SWAP2"
+							},
+							{
+								"begin": 1087,
+								"end": 1274,
+								"name": "POP"
+							},
+							{
+								"begin": 1087,
+								"end": 1274,
+								"name": "POP"
+							},
+							{
+								"begin": 1087,
+								"end": 1274,
+								"name": "JUMP",
+								"value": "[out]"
+							},
+							{
+								"begin": 932,
+								"end": 964,
+								"name": "tag",
+								"value": "22"
+							},
+							{
+								"begin": 932,
+								"end": 964,
+								"name": "JUMPDEST"
+							},
+							{
+								"begin": 932,
+								"end": 964,
+								"name": "PUSH",
+								"value": "3"
+							},
+							{
+								"begin": 932,
+								"end": 964,
+								"name": "SLOAD"
+							},
+							{
+								"begin": 932,
+								"end": 964,
+								"name": "DUP2"
+							},
+							{
+								"begin": 932,
+								"end": 964,
+								"name": "JUMP",
+								"value": "[out]"
+							},
+							{
+								"begin": 1066,
+								"end": 1675,
+								"name": "tag",
+								"value": "25"
+							},
+							{
+								"begin": 1066,
+								"end": 1675,
+								"name": "JUMPDEST"
+							},
+							{
+								"begin": 1198,
+								"end": 1212,
+								"name": "PUSH",
+								"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
+							},
+							{
+								"begin": 1198,
+								"end": 1212,
+								"name": "DUP1"
+							},
+							{
+								"begin": 1198,
+								"end": 1212,
+								"name": "DUP5"
+							},
+							{
+								"begin": 1198,
+								"end": 1212,
+								"name": "AND"
+							},
+							{
+								"begin": 1161,
+								"end": 1165,
+								"name": "PUSH",
+								"value": "0"
+							},
+							{
+								"begin": 1198,
+								"end": 1212,
+								"name": "DUP2"
+							},
+							{
+								"begin": 1198,
+								"end": 1212,
+								"name": "DUP2"
+							},
+							{
+								"begin": 1198,
+								"end": 1212,
+								"name": "MSTORE"
+							},
+							{
+								"begin": 1198,
+								"end": 1205,
+								"name": "PUSH",
+								"value": "1"
+							},
+							{
+								"begin": 1198,
+								"end": 1212,
+								"name": "PUSH",
+								"value": "20"
+							},
+							{
+								"begin": 1198,
+								"end": 1212,
+								"name": "SWAP1"
+							},
+							{
+								"begin": 1198,
+								"end": 1212,
+								"name": "DUP2"
+							},
+							{
+								"begin": 1198,
+								"end": 1212,
+								"name": "MSTORE"
+							},
+							{
+								"begin": 1198,
+								"end": 1212,
+								"name": "PUSH",
+								"value": "40"
+							},
+							{
+								"begin": 1198,
+								"end": 1212,
+								"name": "DUP1"
+							},
+							{
+								"begin": 1198,
+								"end": 1212,
+								"name": "DUP4"
+							},
+							{
+								"begin": 1198,
+								"end": 1212,
+								"name": "SHA3"
+							},
+							{
+								"begin": 1213,
+								"end": 1223,
+								"name": "CALLER"
+							},
+							{
+								"begin": 1198,
+								"end": 1224,
+								"name": "SWAP1"
+							},
+							{
+								"begin": 1198,
+								"end": 1224,
+								"name": "SWAP6"
+							},
+							{
+								"begin": 1198,
+								"end": 1224,
+								"name": "AND"
+							},
+							{
+								"begin": 1198,
+								"end": 1224,
+								"name": "DUP4"
+							},
+							{
+								"begin": 1198,
+								"end": 1224,
+								"name": "MSTORE"
+							},
+							{
+								"begin": 1198,
+								"end": 1224,
+								"name": "SWAP4"
+							},
+							{
+								"begin": 1198,
+								"end": 1224,
+								"name": "DUP2"
+							},
+							{
+								"begin": 1198,
+								"end": 1224,
+								"name": "MSTORE"
+							},
+							{
+								"begin": 1198,
+								"end": 1224,
+								"name": "DUP4"
+							},
+							{
+								"begin": 1198,
+								"end": 1224,
+								"name": "DUP3"
+							},
+							{
+								"begin": 1198,
+								"end": 1224,
+								"name": "SHA3"
+							},
+							{
+								"begin": 1198,
+								"end": 1224,
+								"name": "SLOAD"
+							},
+							{
+								"begin": 1238,
+								"end": 1253,
+								"name": "SWAP3"
+							},
+							{
+								"begin": 1238,
+								"end": 1253,
+								"name": "DUP3"
+							},
+							{
+								"begin": 1238,
+								"end": 1253,
+								"name": "MSTORE"
+							},
+							{
+								"begin": 1238,
+								"end": 1253,
+								"name": "DUP2"
+							},
+							{
+								"begin": 1238,
+								"end": 1253,
+								"name": "SWAP1"
+							},
+							{
+								"begin": 1238,
+								"end": 1253,
+								"name": "MSTORE"
+							},
+							{
+								"begin": 1238,
+								"end": 1253,
+								"name": "SWAP2"
+							},
+							{
+								"begin": 1238,
+								"end": 1253,
+								"name": "DUP3"
+							},
+							{
+								"begin": 1238,
+								"end": 1253,
+								"name": "SHA3"
+							},
+							{
+								"begin": 1238,
+								"end": 1253,
+								"name": "SLOAD"
+							},
+							{
+								"begin": 1238,
+								"end": 1263,
+								"name": "DUP4"
+							},
+							{
+								"begin": 1238,
+								"end": 1263,
+								"name": "SWAP1"
+							},
+							{
+								"begin": 1238,
+								"end": 1263,
+								"name": "LT"
+							},
+							{
+								"begin": 1238,
+								"end": 1263,
+								"name": "DUP1"
+							},
+							{
+								"begin": 1238,
+								"end": 1263,
+								"name": "ISZERO"
+							},
+							{
+								"begin": 1238,
+								"end": 1263,
+								"name": "SWAP1"
+							},
+							{
+								"begin": 1238,
+								"end": 1298,
+								"name": "PUSH [tag]",
+								"value": "46"
+							},
+							{
+								"begin": 1238,
+								"end": 1298,
+								"name": "JUMPI"
+							},
+							{
+								"begin": 1238,
+								"end": 1298,
+								"name": "POP"
+							},
+							{
+								"begin": 1292,
+								"end": 1298,
+								"name": "DUP3"
+							},
+							{
+								"begin": 1279,
+								"end": 1288,
+								"name": "DUP2"
+							},
+							{
+								"begin": 1279,
+								"end": 1298,
+								"name": "LT"
+							},
+							{
+								"begin": 1279,
+								"end": 1298,
+								"name": "ISZERO"
+							},
+							{
+								"begin": 1238,
+								"end": 1298,
+								"name": "tag",
+								"value": "46"
+							},
+							{
+								"begin": 1238,
+								"end": 1298,
+								"name": "JUMPDEST"
+							},
+							{
+								"begin": 1238,
+								"end": 1353,
+								"name": "DUP1"
+							},
+							{
+								"begin": 1238,
+								"end": 1353,
+								"name": "ISZERO"
+							},
+							{
+								"begin": 1238,
+								"end": 1353,
+								"name": "PUSH [tag]",
+								"value": "47"
+							},
+							{
+								"begin": 1238,
+								"end": 1353,
+								"name": "JUMPI"
+							},
+							{
+								"begin": -1,
+								"end": -1,
+								"name": "POP"
+							},
+							{
+								"begin": 1340,
+								"end": 1353,
+								"name": "PUSH",
+								"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
+							},
+							{
+								"begin": 1340,
+								"end": 1353,
+								"name": "DUP5"
+							},
+							{
+								"begin": 1340,
+								"end": 1353,
+								"name": "AND"
+							},
+							{
+								"begin": 1340,
+								"end": 1348,
+								"name": "PUSH",
+								"value": "0"
+							},
+							{
+								"begin": 1340,
+								"end": 1353,
+								"name": "SWAP1"
+							},
+							{
+								"begin": 1340,
+								"end": 1353,
+								"name": "DUP2"
+							},
+							{
+								"begin": 1340,
+								"end": 1353,
+								"name": "MSTORE"
+							},
+							{
+								"begin": 1340,
+								"end": 1353,
+								"name": "PUSH",
+								"value": "20"
+							},
+							{
+								"begin": 1340,
+								"end": 1353,
+								"name": "DUP2"
+							},
+							{
+								"begin": 1340,
+								"end": 1353,
+								"name": "SWAP1"
+							},
+							{
+								"begin": 1340,
+								"end": 1353,
+								"name": "MSTORE"
+							},
+							{
+								"begin": 1340,
+								"end": 1353,
+								"name": "PUSH",
+								"value": "40"
+							},
+							{
+								"begin": 1340,
+								"end": 1353,
+								"name": "SWAP1"
+							},
+							{
+								"begin": 1340,
+								"end": 1353,
+								"name": "SHA3"
+							},
+							{
+								"begin": 1340,
+								"end": 1353,
+								"name": "SLOAD"
+							},
+							{
+								"begin": 1314,
+								"end": 1336,
+								"name": "DUP4"
+							},
+							{
+								"begin": 1314,
+								"end": 1336,
+								"name": "DUP2"
+							},
+							{
+								"begin": 1314,
+								"end": 1336,
+								"name": "ADD"
+							},
+							{
+								"begin": 1314,
+								"end": 1353,
+								"name": "LT"
+							},
+							{
+								"begin": 1314,
+								"end": 1353,
+								"name": "ISZERO"
+							},
+							{
+								"begin": 1238,
+								"end": 1353,
+								"name": "tag",
+								"value": "47"
+							},
+							{
+								"begin": 1238,
+								"end": 1353,
+								"name": "JUMPDEST"
+							},
+							{
+								"begin": 1234,
+								"end": 1669,
+								"name": "ISZERO"
+							},
+							{
+								"begin": 1234,
+								"end": 1669,
+								"name": "PUSH [tag]",
+								"value": "48"
+							},
+							{
+								"begin": 1234,
+								"end": 1669,
+								"name": "JUMPI"
+							},
+							{
+								"begin": 1378,
+								"end": 1391,
+								"name": "PUSH",
+								"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
+							},
+							{
+								"begin": 1378,
+								"end": 1391,
+								"name": "DUP1"
+							},
+							{
+								"begin": 1378,
+								"end": 1391,
+								"name": "DUP6"
+							},
+							{
+								"begin": 1378,
+								"end": 1391,
+								"name": "AND"
+							},
+							{
+								"begin": 1378,
+								"end": 1386,
+								"name": "PUSH",
+								"value": "0"
+							},
+							{
+								"begin": 1378,
+								"end": 1391,
+								"name": "SWAP1"
+							},
+							{
+								"begin": 1378,
+								"end": 1391,
+								"name": "DUP2"
+							},
+							{
+								"begin": 1378,
+								"end": 1391,
+								"name": "MSTORE"
+							},
+							{
+								"begin": 1378,
+								"end": 1391,
+								"name": "PUSH",
+								"value": "20"
+							},
+							{
+								"begin": 1378,
+								"end": 1391,
+								"name": "DUP2"
+							},
+							{
+								"begin": 1378,
+								"end": 1391,
+								"name": "SWAP1"
+							},
+							{
+								"begin": 1378,
+								"end": 1391,
+								"name": "MSTORE"
+							},
+							{
+								"begin": 1378,
+								"end": 1391,
+								"name": "PUSH",
+								"value": "40"
+							},
+							{
+								"begin": 1378,
+								"end": 1391,
+								"name": "DUP1"
+							},
+							{
+								"begin": 1378,
+								"end": 1391,
+								"name": "DUP3"
+							},
+							{
+								"begin": 1378,
+								"end": 1391,
+								"name": "SHA3"
+							},
+							{
+								"begin": 1378,
+								"end": 1401,
+								"name": "DUP1"
+							},
+							{
+								"begin": 1378,
+								"end": 1401,
+								"name": "SLOAD"
+							},
+							{
+								"begin": 1378,
+								"end": 1401,
+								"name": "DUP8"
+							},
+							{
+								"begin": 1378,
+								"end": 1401,
+								"name": "ADD"
+							},
+							{
+								"begin": 1378,
+								"end": 1401,
+								"name": "SWAP1"
+							},
+							{
+								"begin": 1378,
+								"end": 1401,
+								"name": "SSTORE"
+							},
+							{
+								"begin": 1415,
+								"end": 1430,
+								"name": "SWAP2"
+							},
+							{
+								"begin": 1415,
+								"end": 1430,
+								"name": "DUP8"
+							},
+							{
+								"begin": 1415,
+								"end": 1430,
+								"name": "AND"
+							},
+							{
+								"begin": 1415,
+								"end": 1430,
+								"name": "DUP2"
+							},
+							{
+								"begin": 1415,
+								"end": 1430,
+								"name": "MSTORE"
+							},
+							{
+								"begin": 1415,
+								"end": 1430,
+								"name": "SHA3"
+							},
+							{
+								"begin": 1415,
+								"end": 1440,
+								"name": "DUP1"
+							},
+							{
+								"begin": 1415,
+								"end": 1440,
+								"name": "SLOAD"
+							},
+							{
+								"begin": 1415,
+								"end": 1440,
+								"name": "DUP5"
+							},
+							{
+								"begin": 1415,
+								"end": 1440,
+								"name": "SWAP1"
+							},
+							{
+								"begin": 1415,
+								"end": 1440,
+								"name": "SUB"
+							},
+							{
+								"begin": 1415,
+								"end": 1440,
+								"name": "SWAP1"
+							},
+							{
+								"begin": 1415,
+								"end": 1440,
+								"name": "SSTORE"
+							},
+							{
+								"begin": 768,
+								"end": 778,
+								"name": "PUSH",
+								"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
+							},
+							{
+								"begin": 1458,
+								"end": 1478,
+								"name": "DUP2"
+							},
+							{
+								"begin": 1458,
+								"end": 1478,
+								"name": "LT"
+							},
+							{
+								"begin": 1454,
+								"end": 1549,
+								"name": "ISZERO"
+							},
+							{
+								"begin": 1454,
+								"end": 1549,
+								"name": "PUSH [tag]",
+								"value": "49"
+							},
+							{
+								"begin": 1454,
+								"end": 1549,
+								"name": "JUMPI"
+							},
+							{
+								"begin": 1498,
+								"end": 1512,
+								"name": "PUSH",
+								"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
+							},
+							{
+								"begin": 1498,
+								"end": 1512,
+								"name": "DUP1"
+							},
+							{
+								"begin": 1498,
+								"end": 1512,
+								"name": "DUP7"
+							},
+							{
+								"begin": 1498,
+								"end": 1512,
+								"name": "AND"
+							},
+							{
+								"begin": 1498,
+								"end": 1512,
+								"name": "PUSH",
+								"value": "0"
+							},
+							{
+								"begin": 1498,
+								"end": 1512,
+								"name": "SWAP1"
+							},
+							{
+								"begin": 1498,
+								"end": 1512,
+								"name": "DUP2"
+							},
+							{
+								"begin": 1498,
+								"end": 1512,
+								"name": "MSTORE"
+							},
+							{
+								"begin": 1498,
+								"end": 1505,
+								"name": "PUSH",
+								"value": "1"
+							},
+							{
+								"begin": 1498,
+								"end": 1512,
+								"name": "PUSH",
+								"value": "20"
+							},
+							{
+								"begin": 1498,
+								"end": 1512,
+								"name": "SWAP1"
+							},
+							{
+								"begin": 1498,
+								"end": 1512,
+								"name": "DUP2"
+							},
+							{
+								"begin": 1498,
+								"end": 1512,
+								"name": "MSTORE"
+							},
+							{
+								"begin": 1498,
+								"end": 1512,
+								"name": "PUSH",
+								"value": "40"
+							},
+							{
+								"begin": 1498,
+								"end": 1512,
+								"name": "DUP1"
+							},
+							{
+								"begin": 1498,
+								"end": 1512,
+								"name": "DUP4"
+							},
+							{
+								"begin": 1498,
+								"end": 1512,
+								"name": "SHA3"
+							},
+							{
+								"begin": 1513,
+								"end": 1523,
+								"name": "CALLER"
+							},
+							{
+								"begin": 1498,
+								"end": 1524,
+								"name": "SWAP1"
+							},
+							{
+								"begin": 1498,
+								"end": 1524,
+								"name": "SWAP5"
+							},
+							{
+								"begin": 1498,
+								"end": 1524,
+								"name": "AND"
+							},
+							{
+								"begin": 1498,
+								"end": 1524,
+								"name": "DUP4"
+							},
+							{
+								"begin": 1498,
+								"end": 1524,
+								"name": "MSTORE"
+							},
+							{
+								"begin": 1498,
+								"end": 1524,
+								"name": "SWAP3"
+							},
+							{
+								"begin": 1498,
+								"end": 1524,
+								"name": "SWAP1"
+							},
+							{
+								"begin": 1498,
+								"end": 1524,
+								"name": "MSTORE"
+							},
+							{
+								"begin": 1498,
+								"end": 1524,
+								"name": "SHA3"
+							},
+							{
+								"begin": 1498,
+								"end": 1534,
+								"name": "DUP1"
+							},
+							{
+								"begin": 1498,
+								"end": 1534,
+								"name": "SLOAD"
+							},
+							{
+								"begin": 1498,
+								"end": 1534,
+								"name": "DUP5"
+							},
+							{
+								"begin": 1498,
+								"end": 1534,
+								"name": "SWAP1"
+							},
+							{
+								"begin": 1498,
+								"end": 1534,
+								"name": "SUB"
+							},
+							{
+								"begin": 1498,
+								"end": 1534,
+								"name": "SWAP1"
+							},
+							{
+								"begin": 1498,
+								"end": 1534,
+								"name": "SSTORE"
+							},
+							{
+								"begin": 1454,
+								"end": 1549,
+								"name": "tag",
+								"value": "49"
+							},
+							{
+								"begin": 1454,
+								"end": 1549,
+								"name": "JUMPDEST"
+							},
+							{
+								"begin": 1578,
+								"end": 1581,
+								"name": "DUP4"
+							},
+							{
+								"begin": 1562,
+								"end": 1590,
+								"name": "PUSH",
+								"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
+							},
+							{
+								"begin": 1562,
+								"end": 1590,
+								"name": "AND"
+							},
+							{
+								"begin": 1571,
+								"end": 1576,
+								"name": "DUP6"
+							},
+							{
+								"begin": 1562,
+								"end": 1590,
+								"name": "PUSH",
+								"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
+							},
+							{
+								"begin": 1562,
+								"end": 1590,
+								"name": "AND"
+							},
+							{
+								"begin": 1562,
+								"end": 1590,
+								"name": "PUSH",
+								"value": "DDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF"
+							},
+							{
+								"begin": 1583,
+								"end": 1589,
+								"name": "DUP6"
+							},
+							{
+								"begin": 1562,
+								"end": 1590,
+								"name": "PUSH",
+								"value": "40"
+							},
+							{
+								"begin": 1562,
+								"end": 1590,
+								"name": "MLOAD"
+							},
+							{
+								"begin": 1562,
+								"end": 1590,
+								"name": "DUP1"
+							},
+							{
+								"begin": 1562,
+								"end": 1590,
+								"name": "DUP3"
+							},
+							{
+								"begin": 1562,
+								"end": 1590,
+								"name": "DUP2"
+							},
+							{
+								"begin": 1562,
+								"end": 1590,
+								"name": "MSTORE"
+							},
+							{
+								"begin": 1562,
+								"end": 1590,
+								"name": "PUSH",
+								"value": "20"
+							},
+							{
+								"begin": 1562,
+								"end": 1590,
+								"name": "ADD"
+							},
+							{
+								"begin": 1562,
+								"end": 1590,
+								"name": "SWAP2"
+							},
+							{
+								"begin": 1562,
+								"end": 1590,
+								"name": "POP"
+							},
+							{
+								"begin": 1562,
+								"end": 1590,
+								"name": "POP"
+							},
+							{
+								"begin": 1562,
+								"end": 1590,
+								"name": "PUSH",
+								"value": "40"
+							},
+							{
+								"begin": 1562,
+								"end": 1590,
+								"name": "MLOAD"
+							},
+							{
+								"begin": 1562,
+								"end": 1590,
+								"name": "DUP1"
+							},
+							{
+								"begin": 1562,
+								"end": 1590,
+								"name": "SWAP2"
+							},
+							{
+								"begin": 1562,
+								"end": 1590,
+								"name": "SUB"
+							},
+							{
+								"begin": 1562,
+								"end": 1590,
+								"name": "SWAP1"
+							},
+							{
+								"begin": 1562,
+								"end": 1590,
+								"name": "LOG3"
+							},
+							{
+								"begin": 1611,
+								"end": 1615,
+								"name": "PUSH",
+								"value": "1"
+							},
+							{
+								"begin": 1604,
+								"end": 1615,
+								"name": "SWAP2"
+							},
+							{
+								"begin": 1604,
+								"end": 1615,
+								"name": "POP"
+							},
+							{
+								"begin": 1604,
+								"end": 1615,
+								"name": "PUSH [tag]",
+								"value": "50"
+							},
+							{
+								"begin": 1604,
+								"end": 1615,
+								"name": "JUMP"
+							},
+							{
+								"begin": 1234,
+								"end": 1669,
+								"name": "tag",
+								"value": "48"
+							},
+							{
+								"begin": 1234,
+								"end": 1669,
+								"name": "JUMPDEST"
+							},
+							{
+								"begin": 1653,
+								"end": 1658,
+								"name": "PUSH",
+								"value": "0"
+							},
+							{
+								"begin": 1646,
+								"end": 1658,
+								"name": "SWAP2"
+							},
+							{
+								"begin": 1646,
+								"end": 1658,
+								"name": "POP"
+							},
+							{
+								"begin": 1234,
+								"end": 1669,
+								"name": "tag",
+								"value": "50"
+							},
+							{
+								"begin": 1234,
+								"end": 1669,
+								"name": "JUMPDEST"
+							},
+							{
+								"begin": 1066,
+								"end": 1675,
+								"name": "tag",
+								"value": "45"
+							},
+							{
+								"begin": 1066,
+								"end": 1675,
+								"name": "JUMPDEST"
+							},
+							{
+								"begin": 1066,
+								"end": 1675,
+								"name": "POP"
+							},
+							{
+								"begin": 1066,
+								"end": 1675,
+								"name": "SWAP4"
+							},
+							{
+								"begin": 1066,
+								"end": 1675,
+								"name": "SWAP3"
+							},
+							{
+								"begin": 1066,
+								"end": 1675,
+								"name": "POP"
+							},
+							{
+								"begin": 1066,
+								"end": 1675,
+								"name": "POP"
+							},
+							{
+								"begin": 1066,
+								"end": 1675,
+								"name": "POP"
+							},
+							{
+								"begin": 1066,
+								"end": 1675,
+								"name": "JUMP",
+								"value": "[out]"
+							},
+							{
+								"begin": 891,
+								"end": 926,
+								"name": "tag",
+								"value": "28"
+							},
+							{
+								"begin": 891,
+								"end": 926,
+								"name": "JUMPDEST"
+							},
+							{
+								"begin": 924,
+								"end": 926,
+								"name": "PUSH",
+								"value": "12"
+							},
+							{
+								"begin": 891,
+								"end": 926,
+								"name": "DUP2"
+							},
+							{
+								"begin": 891,
+								"end": 926,
+								"name": "JUMP",
+								"value": "[out]"
+							},
+							{
+								"begin": 982,
+								"end": 1081,
+								"name": "tag",
+								"value": "31"
+							},
+							{
+								"begin": 982,
+								"end": 1081,
+								"name": "JUMPDEST"
+							},
+							{
+								"begin": 1058,
+								"end": 1074,
+								"name": "PUSH",
+								"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
+							},
+							{
+								"begin": 1058,
+								"end": 1074,
+								"name": "DUP2"
+							},
+							{
+								"begin": 1058,
+								"end": 1074,
+								"name": "AND"
+							},
+							{
+								"begin": 1035,
+								"end": 1039,
+								"name": "PUSH",
+								"value": "0"
+							},
+							{
+								"begin": 1058,
+								"end": 1074,
+								"name": "SWAP1"
+							},
+							{
+								"begin": 1058,
+								"end": 1074,
+								"name": "DUP2"
+							},
+							{
+								"begin": 1058,
+								"end": 1074,
+								"name": "MSTORE"
+							},
+							{
+								"begin": 1058,
+								"end": 1074,
+								"name": "PUSH",
+								"value": "20"
+							},
+							{
+								"begin": 1058,
+								"end": 1074,
+								"name": "DUP2"
+							},
+							{
+								"begin": 1058,
+								"end": 1074,
+								"name": "SWAP1"
+							},
+							{
+								"begin": 1058,
+								"end": 1074,
+								"name": "MSTORE"
+							},
+							{
+								"begin": 1058,
+								"end": 1074,
+								"name": "PUSH",
+								"value": "40"
+							},
+							{
+								"begin": 1058,
+								"end": 1074,
+								"name": "SWAP1"
+							},
+							{
+								"begin": 1058,
+								"end": 1074,
+								"name": "SHA3"
+							},
+							{
+								"begin": 1058,
+								"end": 1074,
+								"name": "SLOAD"
+							},
+							{
+								"begin": 982,
+								"end": 1081,
+								"name": "tag",
+								"value": "51"
+							},
+							{
+								"begin": 982,
+								"end": 1081,
+								"name": "JUMPDEST"
+							},
+							{
+								"begin": 982,
+								"end": 1081,
+								"name": "SWAP2"
+							},
+							{
+								"begin": 982,
+								"end": 1081,
+								"name": "SWAP1"
+							},
+							{
+								"begin": 982,
+								"end": 1081,
+								"name": "POP"
+							},
+							{
+								"begin": 982,
+								"end": 1081,
+								"name": "JUMP",
+								"value": "[out]"
+							},
+							{
+								"begin": 1064,
+								"end": 1101,
+								"name": "tag",
+								"value": "34"
+							},
+							{
+								"begin": 1064,
+								"end": 1101,
+								"name": "JUMPDEST"
+							},
+							{
+								"begin": 1064,
+								"end": 1101,
+								"name": "PUSH",
+								"value": "40"
+							},
+							{
+								"begin": 1064,
+								"end": 1101,
+								"name": "DUP1"
+							},
+							{
+								"begin": 1064,
+								"end": 1101,
+								"name": "MLOAD"
+							},
+							{
+								"begin": 1064,
+								"end": 1101,
+								"name": "DUP1"
+							},
+							{
+								"begin": 1064,
+								"end": 1101,
+								"name": "DUP3"
+							},
+							{
+								"begin": 1064,
+								"end": 1101,
+								"name": "ADD"
+							},
+							{
+								"begin": 1064,
+								"end": 1101,
+								"name": "SWAP1"
+							},
+							{
+								"begin": 1064,
+								"end": 1101,
+								"name": "SWAP2"
+							},
+							{
+								"begin": 1064,
+								"end": 1101,
+								"name": "MSTORE"
+							},
+							{
+								"begin": 1064,
+								"end": 1101,
+								"name": "PUSH",
+								"value": "3"
+							},
+							{
+								"begin": 1064,
+								"end": 1101,
+								"name": "DUP2"
+							},
+							{
+								"begin": 1064,
+								"end": 1101,
+								"name": "MSTORE"
+							},
+							{
+								"begin": 1064,
+								"end": 1101,
+								"name": "PUSH",
+								"value": "5A52580000000000000000000000000000000000000000000000000000000000"
+							},
+							{
+								"begin": 1064,
+								"end": 1101,
+								"name": "PUSH",
+								"value": "20"
+							},
+							{
+								"begin": 1064,
+								"end": 1101,
+								"name": "DUP3"
+							},
+							{
+								"begin": 1064,
+								"end": 1101,
+								"name": "ADD"
+							},
+							{
+								"begin": 1064,
+								"end": 1101,
+								"name": "MSTORE"
+							},
+							{
+								"begin": 1064,
+								"end": 1101,
+								"name": "DUP2"
+							},
+							{
+								"begin": 1064,
+								"end": 1101,
+								"name": "JUMP",
+								"value": "[out]"
+							},
+							{
+								"begin": 125,
+								"end": 535,
+								"name": "tag",
+								"value": "40"
+							},
+							{
+								"begin": 125,
+								"end": 535,
+								"name": "JUMPDEST"
+							},
+							{
+								"begin": 267,
+								"end": 287,
+								"name": "PUSH",
+								"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
+							},
+							{
+								"begin": 276,
+								"end": 286,
+								"name": "CALLER"
+							},
+							{
+								"begin": 267,
+								"end": 287,
+								"name": "AND"
+							},
+							{
+								"begin": 178,
+								"end": 182,
+								"name": "PUSH",
+								"value": "0"
+							},
+							{
+								"begin": 267,
+								"end": 287,
+								"name": "SWAP1"
+							},
+							{
+								"begin": 267,
+								"end": 287,
+								"name": "DUP2"
+							},
+							{
+								"begin": 267,
+								"end": 287,
+								"name": "MSTORE"
+							},
+							{
+								"begin": 267,
+								"end": 287,
+								"name": "PUSH",
+								"value": "20"
+							},
+							{
+								"begin": 267,
+								"end": 287,
+								"name": "DUP2"
+							},
+							{
+								"begin": 267,
+								"end": 287,
+								"name": "SWAP1"
+							},
+							{
+								"begin": 267,
+								"end": 287,
+								"name": "MSTORE"
+							},
+							{
+								"begin": 267,
+								"end": 287,
+								"name": "PUSH",
+								"value": "40"
+							},
+							{
+								"begin": 267,
+								"end": 287,
+								"name": "DUP2"
+							},
+							{
+								"begin": 267,
+								"end": 287,
+								"name": "SHA3"
+							},
+							{
+								"begin": 267,
+								"end": 287,
+								"name": "SLOAD"
+							},
+							{
+								"begin": 267,
+								"end": 297,
+								"name": "DUP3"
+							},
+							{
+								"begin": 267,
+								"end": 297,
+								"name": "SWAP1"
+							},
+							{
+								"begin": 267,
+								"end": 297,
+								"name": "LT"
+							},
+							{
+								"begin": 267,
+								"end": 297,
+								"name": "DUP1"
+							},
+							{
+								"begin": 267,
+								"end": 297,
+								"name": "ISZERO"
+							},
+							{
+								"begin": 267,
+								"end": 297,
+								"name": "SWAP1"
+							},
+							{
+								"begin": 267,
+								"end": 340,
+								"name": "PUSH [tag]",
+								"value": "53"
+							},
+							{
+								"begin": 267,
+								"end": 340,
+								"name": "JUMPI"
+							},
+							{
+								"begin": -1,
+								"end": -1,
+								"name": "POP"
+							},
+							{
+								"begin": 327,
+								"end": 340,
+								"name": "PUSH",
+								"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
+							},
+							{
+								"begin": 327,
+								"end": 340,
+								"name": "DUP4"
+							},
+							{
+								"begin": 327,
+								"end": 340,
+								"name": "AND"
+							},
+							{
+								"begin": 327,
+								"end": 335,
+								"name": "PUSH",
+								"value": "0"
+							},
+							{
+								"begin": 327,
+								"end": 340,
+								"name": "SWAP1"
+							},
+							{
+								"begin": 327,
+								"end": 340,
+								"name": "DUP2"
+							},
+							{
+								"begin": 327,
+								"end": 340,
+								"name": "MSTORE"
+							},
+							{
+								"begin": 327,
+								"end": 340,
+								"name": "PUSH",
+								"value": "20"
+							},
+							{
+								"begin": 327,
+								"end": 340,
+								"name": "DUP2"
+							},
+							{
+								"begin": 327,
+								"end": 340,
+								"name": "SWAP1"
+							},
+							{
+								"begin": 327,
+								"end": 340,
+								"name": "MSTORE"
+							},
+							{
+								"begin": 327,
+								"end": 340,
+								"name": "PUSH",
+								"value": "40"
+							},
+							{
+								"begin": 327,
+								"end": 340,
+								"name": "SWAP1"
+							},
+							{
+								"begin": 327,
+								"end": 340,
+								"name": "SHA3"
+							},
+							{
+								"begin": 327,
+								"end": 340,
+								"name": "SLOAD"
+							},
+							{
+								"begin": 301,
+								"end": 323,
+								"name": "DUP3"
+							},
+							{
+								"begin": 301,
+								"end": 323,
+								"name": "DUP2"
+							},
+							{
+								"begin": 301,
+								"end": 323,
+								"name": "ADD"
+							},
+							{
+								"begin": 301,
+								"end": 340,
+								"name": "LT"
+							},
+							{
+								"begin": 301,
+								"end": 340,
+								"name": "ISZERO"
+							},
+							{
+								"begin": 267,
+								"end": 340,
+								"name": "tag",
+								"value": "53"
+							},
+							{
+								"begin": 267,
+								"end": 340,
+								"name": "JUMPDEST"
+							},
+							{
+								"begin": 263,
+								"end": 529,
+								"name": "ISZERO"
+							},
+							{
+								"begin": 263,
+								"end": 529,
+								"name": "PUSH [tag]",
+								"value": "54"
+							},
+							{
+								"begin": 263,
+								"end": 529,
+								"name": "JUMPI"
+							},
+							{
+								"begin": 356,
+								"end": 376,
+								"name": "PUSH",
+								"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
+							},
+							{
+								"begin": 365,
+								"end": 375,
+								"name": "CALLER"
+							},
+							{
+								"begin": 356,
+								"end": 376,
+								"name": "DUP2"
+							},
+							{
+								"begin": 356,
+								"end": 376,
+								"name": "AND"
+							},
+							{
+								"begin": 356,
+								"end": 364,
+								"name": "PUSH",
+								"value": "0"
+							},
+							{
+								"begin": 356,
+								"end": 376,
+								"name": "DUP2"
+							},
+							{
+								"begin": 356,
+								"end": 376,
+								"name": "DUP2"
+							},
+							{
+								"begin": 356,
+								"end": 376,
+								"name": "MSTORE"
+							},
+							{
+								"begin": 356,
+								"end": 376,
+								"name": "PUSH",
+								"value": "20"
+							},
+							{
+								"begin": 356,
+								"end": 376,
+								"name": "DUP2"
+							},
+							{
+								"begin": 356,
+								"end": 376,
+								"name": "DUP2"
+							},
+							{
+								"begin": 356,
+								"end": 376,
+								"name": "MSTORE"
+							},
+							{
+								"begin": 356,
+								"end": 376,
+								"name": "PUSH",
+								"value": "40"
+							},
+							{
+								"begin": 356,
+								"end": 376,
+								"name": "DUP1"
+							},
+							{
+								"begin": 356,
+								"end": 376,
+								"name": "DUP4"
+							},
+							{
+								"begin": 356,
+								"end": 376,
+								"name": "SHA3"
+							},
+							{
+								"begin": 356,
+								"end": 386,
+								"name": "DUP1"
+							},
+							{
+								"begin": 356,
+								"end": 386,
+								"name": "SLOAD"
+							},
+							{
+								"begin": 356,
+								"end": 386,
+								"name": "DUP9"
+							},
+							{
+								"begin": 356,
+								"end": 386,
+								"name": "SWAP1"
+							},
+							{
+								"begin": 356,
+								"end": 386,
+								"name": "SUB"
+							},
+							{
+								"begin": 356,
+								"end": 386,
+								"name": "SWAP1"
+							},
+							{
+								"begin": 356,
+								"end": 386,
+								"name": "SSTORE"
+							},
+							{
+								"begin": 400,
+								"end": 413,
+								"name": "SWAP4"
+							},
+							{
+								"begin": 400,
+								"end": 413,
+								"name": "DUP8"
+							},
+							{
+								"begin": 400,
+								"end": 413,
+								"name": "AND"
+							},
+							{
+								"begin": 400,
+								"end": 413,
+								"name": "DUP1"
+							},
+							{
+								"begin": 400,
+								"end": 413,
+								"name": "DUP4"
+							},
+							{
+								"begin": 400,
+								"end": 413,
+								"name": "MSTORE"
+							},
+							{
+								"begin": 400,
+								"end": 413,
+								"name": "SWAP2"
+							},
+							{
+								"begin": 400,
+								"end": 413,
+								"name": "DUP5"
+							},
+							{
+								"begin": 400,
+								"end": 413,
+								"name": "SWAP1"
+							},
+							{
+								"begin": 400,
+								"end": 413,
+								"name": "SHA3"
+							},
+							{
+								"begin": 400,
+								"end": 423,
+								"name": "DUP1"
+							},
+							{
+								"begin": 400,
+								"end": 423,
+								"name": "SLOAD"
+							},
+							{
+								"begin": 400,
+								"end": 423,
+								"name": "DUP8"
+							},
+							{
+								"begin": 400,
+								"end": 423,
+								"name": "ADD"
+							},
+							{
+								"begin": 400,
+								"end": 423,
+								"name": "SWAP1"
+							},
+							{
+								"begin": 400,
+								"end": 423,
+								"name": "SSTORE"
+							},
+							{
+								"begin": 437,
+								"end": 470,
+								"name": "DUP4"
+							},
+							{
+								"begin": 437,
+								"end": 470,
+								"name": "MLOAD"
+							},
+							{
+								"begin": 437,
+								"end": 470,
+								"name": "DUP7"
+							},
+							{
+								"begin": 437,
+								"end": 470,
+								"name": "DUP2"
+							},
+							{
+								"begin": 437,
+								"end": 470,
+								"name": "MSTORE"
+							},
+							{
+								"begin": 437,
+								"end": 470,
+								"name": "SWAP4"
+							},
+							{
+								"begin": 437,
+								"end": 470,
+								"name": "MLOAD"
+							},
+							{
+								"begin": 400,
+								"end": 413,
+								"name": "SWAP2"
+							},
+							{
+								"begin": 400,
+								"end": 413,
+								"name": "SWAP4"
+							},
+							{
+								"begin": 437,
+								"end": 470,
+								"name": "PUSH",
+								"value": "DDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF"
+							},
+							{
+								"begin": 437,
+								"end": 470,
+								"name": "SWAP3"
+							},
+							{
+								"begin": 437,
+								"end": 470,
+								"name": "SWAP1"
+							},
+							{
+								"begin": 437,
+								"end": 470,
+								"name": "DUP2"
+							},
+							{
+								"begin": 437,
+								"end": 470,
+								"name": "SWAP1"
+							},
+							{
+								"begin": 437,
+								"end": 470,
+								"name": "SUB"
+							},
+							{
+								"begin": 437,
+								"end": 470,
+								"name": "SWAP1"
+							},
+							{
+								"begin": 437,
+								"end": 470,
+								"name": "SWAP2"
+							},
+							{
+								"begin": 437,
+								"end": 470,
+								"name": "ADD"
+							},
+							{
+								"begin": 437,
+								"end": 470,
+								"name": "SWAP1"
+							},
+							{
+								"begin": 437,
+								"end": 470,
+								"name": "LOG3"
+							},
+							{
+								"begin": -1,
+								"end": -1,
+								"name": "POP"
+							},
+							{
+								"begin": 491,
+								"end": 495,
+								"name": "PUSH",
+								"value": "1"
+							},
+							{
+								"begin": 484,
+								"end": 495,
+								"name": "PUSH [tag]",
+								"value": "44"
+							},
+							{
+								"begin": 484,
+								"end": 495,
+								"name": "JUMP"
+							},
+							{
+								"begin": 263,
+								"end": 529,
+								"name": "tag",
+								"value": "54"
+							},
+							{
+								"begin": 263,
+								"end": 529,
+								"name": "JUMPDEST"
+							},
+							{
+								"begin": -1,
+								"end": -1,
+								"name": "POP"
+							},
+							{
+								"begin": 521,
+								"end": 526,
+								"name": "PUSH",
+								"value": "0"
+							},
+							{
+								"begin": 514,
+								"end": 526,
+								"name": "PUSH [tag]",
+								"value": "44"
+							},
+							{
+								"begin": 514,
+								"end": 526,
+								"name": "JUMP"
+							},
+							{
+								"begin": 263,
+								"end": 529,
+								"name": "tag",
+								"value": "55"
+							},
+							{
+								"begin": 263,
+								"end": 529,
+								"name": "JUMPDEST"
+							},
+							{
+								"begin": 125,
+								"end": 535,
+								"name": "tag",
+								"value": "52"
+							},
+							{
+								"begin": 125,
+								"end": 535,
+								"name": "JUMPDEST"
+							},
+							{
+								"begin": 125,
+								"end": 535,
+								"name": "SWAP3"
+							},
+							{
+								"begin": 125,
+								"end": 535,
+								"name": "SWAP2"
+							},
+							{
+								"begin": 125,
+								"end": 535,
+								"name": "POP"
+							},
+							{
+								"begin": 125,
+								"end": 535,
+								"name": "POP"
+							},
+							{
+								"begin": 125,
+								"end": 535,
+								"name": "JUMP",
+								"value": "[out]"
+							},
+							{
+								"begin": 1280,
+								"end": 1406,
+								"name": "tag",
+								"value": "43"
+							},
+							{
+								"begin": 1280,
+								"end": 1406,
+								"name": "JUMPDEST"
+							},
+							{
+								"begin": 1374,
+								"end": 1389,
+								"name": "PUSH",
+								"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
+							},
+							{
+								"begin": 1374,
+								"end": 1389,
+								"name": "DUP1"
+							},
+							{
+								"begin": 1374,
+								"end": 1389,
+								"name": "DUP4"
+							},
+							{
+								"begin": 1374,
+								"end": 1389,
+								"name": "AND"
+							},
+							{
+								"begin": 1351,
+								"end": 1355,
+								"name": "PUSH",
+								"value": "0"
+							},
+							{
+								"begin": 1374,
+								"end": 1389,
+								"name": "SWAP1"
+							},
+							{
+								"begin": 1374,
+								"end": 1389,
+								"name": "DUP2"
+							},
+							{
+								"begin": 1374,
+								"end": 1389,
+								"name": "MSTORE"
+							},
+							{
+								"begin": 1374,
+								"end": 1381,
+								"name": "PUSH",
+								"value": "1"
+							},
+							{
+								"begin": 1374,
+								"end": 1389,
+								"name": "PUSH",
+								"value": "20"
+							},
+							{
+								"begin": 1374,
+								"end": 1389,
+								"name": "SWAP1"
+							},
+							{
+								"begin": 1374,
+								"end": 1389,
+								"name": "DUP2"
+							},
+							{
+								"begin": 1374,
+								"end": 1389,
+								"name": "MSTORE"
+							},
+							{
+								"begin": 1374,
+								"end": 1389,
+								"name": "PUSH",
+								"value": "40"
+							},
+							{
+								"begin": 1374,
+								"end": 1389,
+								"name": "DUP1"
+							},
+							{
+								"begin": 1374,
+								"end": 1389,
+								"name": "DUP4"
+							},
+							{
+								"begin": 1374,
+								"end": 1389,
+								"name": "SHA3"
+							},
+							{
+								"begin": 1374,
+								"end": 1399,
+								"name": "SWAP4"
+							},
+							{
+								"begin": 1374,
+								"end": 1399,
+								"name": "DUP6"
+							},
+							{
+								"begin": 1374,
+								"end": 1399,
+								"name": "AND"
+							},
+							{
+								"begin": 1374,
+								"end": 1399,
+								"name": "DUP4"
+							},
+							{
+								"begin": 1374,
+								"end": 1399,
+								"name": "MSTORE"
+							},
+							{
+								"begin": 1374,
+								"end": 1399,
+								"name": "SWAP3"
+							},
+							{
+								"begin": 1374,
+								"end": 1399,
+								"name": "SWAP1"
+							},
+							{
+								"begin": 1374,
+								"end": 1399,
+								"name": "MSTORE"
+							},
+							{
+								"begin": 1374,
+								"end": 1399,
+								"name": "SHA3"
+							},
+							{
+								"begin": 1374,
+								"end": 1399,
+								"name": "SLOAD"
+							},
+							{
+								"begin": 1280,
+								"end": 1406,
+								"name": "tag",
+								"value": "56"
+							},
+							{
+								"begin": 1280,
+								"end": 1406,
+								"name": "JUMPDEST"
+							},
+							{
+								"begin": 1280,
+								"end": 1406,
+								"name": "SWAP3"
+							},
+							{
+								"begin": 1280,
+								"end": 1406,
+								"name": "SWAP2"
+							},
+							{
+								"begin": 1280,
+								"end": 1406,
+								"name": "POP"
+							},
+							{
+								"begin": 1280,
+								"end": 1406,
+								"name": "POP"
+							},
+							{
+								"begin": 1280,
+								"end": 1406,
+								"name": "JUMP",
+								"value": "[out]"
+							}
+						]
+					}
+				}
+			},
+			"methodIdentifiers": {
+				"allowance(address,address)": "dd62ed3e",
+				"approve(address,uint256)": "095ea7b3",
+				"balanceOf(address)": "70a08231",
+				"decimals()": "313ce567",
+				"name()": "06fdde03",
+				"symbol()": "95d89b41",
+				"totalSupply()": "18160ddd",
+				"transfer(address,uint256)": "a9059cbb",
+				"transferFrom(address,address,uint256)": "23b872dd"
+			}
+		},
+		"metadata": "{\"compiler\":{\"version\":\"0.4.11+commit.68ef5810\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_spender\",\"type\":\"address\"},{\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_from\",\"type\":\"address\"},{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\"},{\"name\":\"_spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"type\":\"function\"},{\"inputs\":[],\"payable\":false,\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"_from\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"_to\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"_owner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"_spender\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"}],\"devdoc\":{\"methods\":{\"transferFrom(address,address,uint256)\":{\"details\":\"ERC20 transferFrom, modified such that an allowance of MAX_UINT represents an unlimited allowance.\",\"params\":{\"_from\":\"Address to transfer from.\",\"_to\":\"Address to transfer to.\",\"_value\":\"Amount to transfer.\"},\"return\":\"Success of transfer.\"}}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"2.0.0/tokens/ZRXToken/ZRXToken.sol\":\"ZRXToken\"},\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":1000000},\"remappings\":[]},\"sources\":{\"1.0.0/ERC20Token/ERC20Token_v1.sol\":{\"keccak256\":\"0x3d710b436c430d6fe49f64b091555405360d76da6454b93faa8e213eea34a96d\",\"urls\":[\"bzzr://d12710a563415ad98ff28ecb3aab0b68467b3d023e7c130c73ed9918ef86158e\"]},\"1.0.0/Token/Token_v1.sol\":{\"keccak256\":\"0x35a82bc7bc0994caa97f8ea44660b9b5e796acfe72705b5ff7ed8f2a3c47ff37\",\"urls\":[\"bzzr://a62ae857a4cf2e8948e36d02470c612ac1a5ac20ebe1c1b553ad1ed8becb634e\"]},\"1.0.0/UnlimitedAllowanceToken/UnlimitedAllowanceToken_v1.sol\":{\"keccak256\":\"0x2e1f4b899081cedd8940a9cd0f0f7413264c883312ed0ba9c53885766fe0a1a5\",\"urls\":[\"bzzr://47c42a58e56ffe81e49c8aabd3c391f5fa807fea299b3a2178501e3669baeb52\"]},\"2.0.0/tokens/ZRXToken/ZRXToken.sol\":{\"keccak256\":\"0x9eeb623d48909b083c77688b13b610811c53e37622b3fcbaa23c01873230f5d6\",\"urls\":[\"bzzr://84f3b5c2653068092771d443281018ff2ee0543817426d0fb6f9037a3570e37f\"]}},\"version\":1}",
+		"userdoc": {
+			"methods": {}
+		}
+	},
+	"sources": {
+		"1.0.0/ERC20Token/ERC20Token_v1.sol": {
+			"id": 0,
+			"legacyAST": {
+				"children": [
+					{
+						"attributes": {
+							"literals": [
+								"solidity",
+								"^",
+								"0.4",
+								".11"
+							]
+						},
+						"id": 126,
+						"name": "PragmaDirective",
+						"src": "0:24:0"
+					},
+					{
+						"attributes": {
+							"file": "../Token/Token_v1.sol"
+						},
+						"id": 128,
+						"name": "ImportDirective",
+						"src": "26:58:0"
+					},
+					{
+						"attributes": {
+							"fullyImplemented": true,
+							"isLibrary": false,
+							"linearizedBaseContracts": [
+								322,
+								397
+							],
+							"name": "ERC20Token_v1"
+						},
+						"children": [
+							{
+								"children": [
+									{
+										"attributes": {
+											"name": "Token"
+										},
+										"id": 129,
+										"name": "UserDefinedTypeName",
+										"src": "112:5:0"
+									}
+								],
+								"id": 130,
+								"name": "InheritanceSpecifier",
+								"src": "112:5:0"
+							},
+							{
+								"attributes": {
+									"constant": false,
+									"name": "transfer",
+									"payable": false,
+									"visibility": "public"
+								},
+								"children": [
+									{
+										"children": [
+											{
+												"attributes": {
+													"constant": false,
+													"name": "_to",
+													"storageLocation": "default",
+													"type": "address",
+													"visibility": "internal"
+												},
+												"children": [
+													{
+														"attributes": {
+															"name": "address"
+														},
+														"id": 131,
+														"name": "ElementaryTypeName",
+														"src": "143:7:0"
+													}
+												],
+												"id": 132,
+												"name": "VariableDeclaration",
+												"src": "143:11:0"
+											},
+											{
+												"attributes": {
+													"constant": false,
+													"name": "_value",
+													"storageLocation": "default",
+													"type": "uint256",
+													"visibility": "internal"
+												},
+												"children": [
+													{
+														"attributes": {
+															"name": "uint"
+														},
+														"id": 133,
+														"name": "ElementaryTypeName",
+														"src": "156:4:0"
+													}
+												],
+												"id": 134,
+												"name": "VariableDeclaration",
+												"src": "156:11:0"
+											}
+										],
+										"id": 135,
+										"name": "ParameterList",
+										"src": "142:26:0"
+									},
+									{
+										"children": [
+											{
+												"attributes": {
+													"constant": false,
+													"name": "",
+													"storageLocation": "default",
+													"type": "bool",
+													"visibility": "internal"
+												},
+												"children": [
+													{
+														"attributes": {
+															"name": "bool"
+														},
+														"id": 136,
+														"name": "ElementaryTypeName",
+														"src": "178:4:0"
+													}
+												],
+												"id": 137,
+												"name": "VariableDeclaration",
+												"src": "178:4:0"
+											}
+										],
+										"id": 138,
+										"name": "ParameterList",
+										"src": "177:6:0"
+									},
+									{
+										"children": [
+											{
+												"children": [
+													{
+														"attributes": {
+															"operator": "&&",
+															"type": "bool"
+														},
+														"children": [
+															{
+																"attributes": {
+																	"operator": ">=",
+																	"type": "bool"
+																},
+																"children": [
+																	{
+																		"attributes": {
+																			"type": "uint256"
+																		},
+																		"children": [
+																			{
+																				"attributes": {
+																					"type": "mapping(address => uint256)",
+																					"value": "balances"
+																				},
+																				"id": 139,
+																				"name": "Identifier",
+																				"src": "267:8:0"
+																			},
+																			{
+																				"attributes": {
+																					"member_name": "sender",
+																					"type": "address"
+																				},
+																				"children": [
+																					{
+																						"attributes": {
+																							"type": "msg",
+																							"value": "msg"
+																						},
+																						"id": 140,
+																						"name": "Identifier",
+																						"src": "276:3:0"
+																					}
+																				],
+																				"id": 141,
+																				"name": "MemberAccess",
+																				"src": "276:10:0"
+																			}
+																		],
+																		"id": 142,
+																		"name": "IndexAccess",
+																		"src": "267:20:0"
+																	},
+																	{
+																		"attributes": {
+																			"type": "uint256",
+																			"value": "_value"
+																		},
+																		"id": 143,
+																		"name": "Identifier",
+																		"src": "291:6:0"
+																	}
+																],
+																"id": 144,
+																"name": "BinaryOperation",
+																"src": "267:30:0"
+															},
+															{
+																"attributes": {
+																	"operator": ">=",
+																	"type": "bool"
+																},
+																"children": [
+																	{
+																		"attributes": {
+																			"operator": "+",
+																			"type": "uint256"
+																		},
+																		"children": [
+																			{
+																				"attributes": {
+																					"type": "uint256"
+																				},
+																				"children": [
+																					{
+																						"attributes": {
+																							"type": "mapping(address => uint256)",
+																							"value": "balances"
+																						},
+																						"id": 145,
+																						"name": "Identifier",
+																						"src": "301:8:0"
+																					},
+																					{
+																						"attributes": {
+																							"type": "address",
+																							"value": "_to"
+																						},
+																						"id": 146,
+																						"name": "Identifier",
+																						"src": "310:3:0"
+																					}
+																				],
+																				"id": 147,
+																				"name": "IndexAccess",
+																				"src": "301:13:0"
+																			},
+																			{
+																				"attributes": {
+																					"type": "uint256",
+																					"value": "_value"
+																				},
+																				"id": 148,
+																				"name": "Identifier",
+																				"src": "317:6:0"
+																			}
+																		],
+																		"id": 149,
+																		"name": "BinaryOperation",
+																		"src": "301:22:0"
+																	},
+																	{
+																		"attributes": {
+																			"type": "uint256"
+																		},
+																		"children": [
+																			{
+																				"attributes": {
+																					"type": "mapping(address => uint256)",
+																					"value": "balances"
+																				},
+																				"id": 150,
+																				"name": "Identifier",
+																				"src": "327:8:0"
+																			},
+																			{
+																				"attributes": {
+																					"type": "address",
+																					"value": "_to"
+																				},
+																				"id": 151,
+																				"name": "Identifier",
+																				"src": "336:3:0"
+																			}
+																		],
+																		"id": 152,
+																		"name": "IndexAccess",
+																		"src": "327:13:0"
+																	}
+																],
+																"id": 153,
+																"name": "BinaryOperation",
+																"src": "301:39:0"
+															}
+														],
+														"id": 154,
+														"name": "BinaryOperation",
+														"src": "267:73:0"
+													},
+													{
+														"children": [
+															{
+																"children": [
+																	{
+																		"attributes": {
+																			"operator": "-=",
+																			"type": "uint256"
+																		},
+																		"children": [
+																			{
+																				"attributes": {
+																					"type": "uint256"
+																				},
+																				"children": [
+																					{
+																						"attributes": {
+																							"type": "mapping(address => uint256)",
+																							"value": "balances"
+																						},
+																						"id": 155,
+																						"name": "Identifier",
+																						"src": "356:8:0"
+																					},
+																					{
+																						"attributes": {
+																							"member_name": "sender",
+																							"type": "address"
+																						},
+																						"children": [
+																							{
+																								"attributes": {
+																									"type": "msg",
+																									"value": "msg"
+																								},
+																								"id": 156,
+																								"name": "Identifier",
+																								"src": "365:3:0"
+																							}
+																						],
+																						"id": 157,
+																						"name": "MemberAccess",
+																						"src": "365:10:0"
+																					}
+																				],
+																				"id": 158,
+																				"name": "IndexAccess",
+																				"src": "356:20:0"
+																			},
+																			{
+																				"attributes": {
+																					"type": "uint256",
+																					"value": "_value"
+																				},
+																				"id": 159,
+																				"name": "Identifier",
+																				"src": "380:6:0"
+																			}
+																		],
+																		"id": 160,
+																		"name": "Assignment",
+																		"src": "356:30:0"
+																	}
+																],
+																"id": 161,
+																"name": "ExpressionStatement",
+																"src": "356:30:0"
+															},
+															{
+																"children": [
+																	{
+																		"attributes": {
+																			"operator": "+=",
+																			"type": "uint256"
+																		},
+																		"children": [
+																			{
+																				"attributes": {
+																					"type": "uint256"
+																				},
+																				"children": [
+																					{
+																						"attributes": {
+																							"type": "mapping(address => uint256)",
+																							"value": "balances"
+																						},
+																						"id": 162,
+																						"name": "Identifier",
+																						"src": "400:8:0"
+																					},
+																					{
+																						"attributes": {
+																							"type": "address",
+																							"value": "_to"
+																						},
+																						"id": 163,
+																						"name": "Identifier",
+																						"src": "409:3:0"
+																					}
+																				],
+																				"id": 164,
+																				"name": "IndexAccess",
+																				"src": "400:13:0"
+																			},
+																			{
+																				"attributes": {
+																					"type": "uint256",
+																					"value": "_value"
+																				},
+																				"id": 165,
+																				"name": "Identifier",
+																				"src": "417:6:0"
+																			}
+																		],
+																		"id": 166,
+																		"name": "Assignment",
+																		"src": "400:23:0"
+																	}
+																],
+																"id": 167,
+																"name": "ExpressionStatement",
+																"src": "400:23:0"
+															},
+															{
+																"children": [
+																	{
+																		"attributes": {
+																			"type": "tuple()",
+																			"type_conversion": false
+																		},
+																		"children": [
+																			{
+																				"attributes": {
+																					"type": "function (address,address,uint256) constant",
+																					"value": "Transfer"
+																				},
+																				"id": 168,
+																				"name": "Identifier",
+																				"src": "437:8:0"
+																			},
+																			{
+																				"attributes": {
+																					"member_name": "sender",
+																					"type": "address"
+																				},
+																				"children": [
+																					{
+																						"attributes": {
+																							"type": "msg",
+																							"value": "msg"
+																						},
+																						"id": 169,
+																						"name": "Identifier",
+																						"src": "446:3:0"
+																					}
+																				],
+																				"id": 170,
+																				"name": "MemberAccess",
+																				"src": "446:10:0"
+																			},
+																			{
+																				"attributes": {
+																					"type": "address",
+																					"value": "_to"
+																				},
+																				"id": 171,
+																				"name": "Identifier",
+																				"src": "458:3:0"
+																			},
+																			{
+																				"attributes": {
+																					"type": "uint256",
+																					"value": "_value"
+																				},
+																				"id": 172,
+																				"name": "Identifier",
+																				"src": "463:6:0"
+																			}
+																		],
+																		"id": 173,
+																		"name": "FunctionCall",
+																		"src": "437:33:0"
+																	}
+																],
+																"id": 174,
+																"name": "ExpressionStatement",
+																"src": "437:33:0"
+															},
+															{
+																"children": [
+																	{
+																		"attributes": {
+																			"hexvalue": "74727565",
+																			"subdenomination": null,
+																			"token": "true",
+																			"type": "bool",
+																			"value": "true"
+																		},
+																		"id": 175,
+																		"name": "Literal",
+																		"src": "491:4:0"
+																	}
+																],
+																"id": 176,
+																"name": "Return",
+																"src": "484:11:0"
+															}
+														],
+														"id": 177,
+														"name": "Block",
+														"src": "342:164:0"
+													},
+													{
+														"children": [
+															{
+																"children": [
+																	{
+																		"attributes": {
+																			"hexvalue": "66616c7365",
+																			"subdenomination": null,
+																			"token": "false",
+																			"type": "bool",
+																			"value": "false"
+																		},
+																		"id": 178,
+																		"name": "Literal",
+																		"src": "521:5:0"
+																	}
+																],
+																"id": 179,
+																"name": "Return",
+																"src": "514:12:0"
+															}
+														],
+														"id": 180,
+														"name": "Block",
+														"src": "512:17:0"
+													}
+												],
+												"id": 181,
+												"name": "IfStatement",
+												"src": "263:266:0"
+											}
+										],
+										"id": 182,
+										"name": "Block",
+										"src": "184:351:0"
+									}
+								],
+								"id": 183,
+								"name": "FunctionDefinition",
+								"src": "125:410:0"
+							},
+							{
+								"attributes": {
+									"constant": false,
+									"name": "transferFrom",
+									"payable": false,
+									"visibility": "public"
+								},
+								"children": [
+									{
+										"children": [
+											{
+												"attributes": {
+													"constant": false,
+													"name": "_from",
+													"storageLocation": "default",
+													"type": "address",
+													"visibility": "internal"
+												},
+												"children": [
+													{
+														"attributes": {
+															"name": "address"
+														},
+														"id": 184,
+														"name": "ElementaryTypeName",
+														"src": "563:7:0"
+													}
+												],
+												"id": 185,
+												"name": "VariableDeclaration",
+												"src": "563:13:0"
+											},
+											{
+												"attributes": {
+													"constant": false,
+													"name": "_to",
+													"storageLocation": "default",
+													"type": "address",
+													"visibility": "internal"
+												},
+												"children": [
+													{
+														"attributes": {
+															"name": "address"
+														},
+														"id": 186,
+														"name": "ElementaryTypeName",
+														"src": "578:7:0"
+													}
+												],
+												"id": 187,
+												"name": "VariableDeclaration",
+												"src": "578:11:0"
+											},
+											{
+												"attributes": {
+													"constant": false,
+													"name": "_value",
+													"storageLocation": "default",
+													"type": "uint256",
+													"visibility": "internal"
+												},
+												"children": [
+													{
+														"attributes": {
+															"name": "uint"
+														},
+														"id": 188,
+														"name": "ElementaryTypeName",
+														"src": "591:4:0"
+													}
+												],
+												"id": 189,
+												"name": "VariableDeclaration",
+												"src": "591:11:0"
+											}
+										],
+										"id": 190,
+										"name": "ParameterList",
+										"src": "562:41:0"
+									},
+									{
+										"children": [
+											{
+												"attributes": {
+													"constant": false,
+													"name": "",
+													"storageLocation": "default",
+													"type": "bool",
+													"visibility": "internal"
+												},
+												"children": [
+													{
+														"attributes": {
+															"name": "bool"
+														},
+														"id": 191,
+														"name": "ElementaryTypeName",
+														"src": "613:4:0"
+													}
+												],
+												"id": 192,
+												"name": "VariableDeclaration",
+												"src": "613:4:0"
+											}
+										],
+										"id": 193,
+										"name": "ParameterList",
+										"src": "612:6:0"
+									},
+									{
+										"children": [
+											{
+												"children": [
+													{
+														"attributes": {
+															"operator": "&&",
+															"type": "bool"
+														},
+														"children": [
+															{
+																"attributes": {
+																	"operator": "&&",
+																	"type": "bool"
+																},
+																"children": [
+																	{
+																		"attributes": {
+																			"operator": ">=",
+																			"type": "bool"
+																		},
+																		"children": [
+																			{
+																				"attributes": {
+																					"type": "uint256"
+																				},
+																				"children": [
+																					{
+																						"attributes": {
+																							"type": "mapping(address => uint256)",
+																							"value": "balances"
+																						},
+																						"id": 194,
+																						"name": "Identifier",
+																						"src": "633:8:0"
+																					},
+																					{
+																						"attributes": {
+																							"type": "address",
+																							"value": "_from"
+																						},
+																						"id": 195,
+																						"name": "Identifier",
+																						"src": "642:5:0"
+																					}
+																				],
+																				"id": 196,
+																				"name": "IndexAccess",
+																				"src": "633:15:0"
+																			},
+																			{
+																				"attributes": {
+																					"type": "uint256",
+																					"value": "_value"
+																				},
+																				"id": 197,
+																				"name": "Identifier",
+																				"src": "652:6:0"
+																			}
+																		],
+																		"id": 198,
+																		"name": "BinaryOperation",
+																		"src": "633:25:0"
+																	},
+																	{
+																		"attributes": {
+																			"operator": ">=",
+																			"type": "bool"
+																		},
+																		"children": [
+																			{
+																				"attributes": {
+																					"type": "uint256"
+																				},
+																				"children": [
+																					{
+																						"attributes": {
+																							"type": "mapping(address => uint256)"
+																						},
+																						"children": [
+																							{
+																								"attributes": {
+																									"type": "mapping(address => mapping(address => uint256))",
+																									"value": "allowed"
+																								},
+																								"id": 199,
+																								"name": "Identifier",
+																								"src": "662:7:0"
+																							},
+																							{
+																								"attributes": {
+																									"type": "address",
+																									"value": "_from"
+																								},
+																								"id": 200,
+																								"name": "Identifier",
+																								"src": "670:5:0"
+																							}
+																						],
+																						"id": 201,
+																						"name": "IndexAccess",
+																						"src": "662:14:0"
+																					},
+																					{
+																						"attributes": {
+																							"member_name": "sender",
+																							"type": "address"
+																						},
+																						"children": [
+																							{
+																								"attributes": {
+																									"type": "msg",
+																									"value": "msg"
+																								},
+																								"id": 202,
+																								"name": "Identifier",
+																								"src": "677:3:0"
+																							}
+																						],
+																						"id": 203,
+																						"name": "MemberAccess",
+																						"src": "677:10:0"
+																					}
+																				],
+																				"id": 204,
+																				"name": "IndexAccess",
+																				"src": "662:26:0"
+																			},
+																			{
+																				"attributes": {
+																					"type": "uint256",
+																					"value": "_value"
+																				},
+																				"id": 205,
+																				"name": "Identifier",
+																				"src": "692:6:0"
+																			}
+																		],
+																		"id": 206,
+																		"name": "BinaryOperation",
+																		"src": "662:36:0"
+																	}
+																],
+																"id": 207,
+																"name": "BinaryOperation",
+																"src": "633:65:0"
+															},
+															{
+																"attributes": {
+																	"operator": ">=",
+																	"type": "bool"
+																},
+																"children": [
+																	{
+																		"attributes": {
+																			"operator": "+",
+																			"type": "uint256"
+																		},
+																		"children": [
+																			{
+																				"attributes": {
+																					"type": "uint256"
+																				},
+																				"children": [
+																					{
+																						"attributes": {
+																							"type": "mapping(address => uint256)",
+																							"value": "balances"
+																						},
+																						"id": 208,
+																						"name": "Identifier",
+																						"src": "702:8:0"
+																					},
+																					{
+																						"attributes": {
+																							"type": "address",
+																							"value": "_to"
+																						},
+																						"id": 209,
+																						"name": "Identifier",
+																						"src": "711:3:0"
+																					}
+																				],
+																				"id": 210,
+																				"name": "IndexAccess",
+																				"src": "702:13:0"
+																			},
+																			{
+																				"attributes": {
+																					"type": "uint256",
+																					"value": "_value"
+																				},
+																				"id": 211,
+																				"name": "Identifier",
+																				"src": "718:6:0"
+																			}
+																		],
+																		"id": 212,
+																		"name": "BinaryOperation",
+																		"src": "702:22:0"
+																	},
+																	{
+																		"attributes": {
+																			"type": "uint256"
+																		},
+																		"children": [
+																			{
+																				"attributes": {
+																					"type": "mapping(address => uint256)",
+																					"value": "balances"
+																				},
+																				"id": 213,
+																				"name": "Identifier",
+																				"src": "728:8:0"
+																			},
+																			{
+																				"attributes": {
+																					"type": "address",
+																					"value": "_to"
+																				},
+																				"id": 214,
+																				"name": "Identifier",
+																				"src": "737:3:0"
+																			}
+																		],
+																		"id": 215,
+																		"name": "IndexAccess",
+																		"src": "728:13:0"
+																	}
+																],
+																"id": 216,
+																"name": "BinaryOperation",
+																"src": "702:39:0"
+															}
+														],
+														"id": 217,
+														"name": "BinaryOperation",
+														"src": "633:108:0"
+													},
+													{
+														"children": [
+															{
+																"children": [
+																	{
+																		"attributes": {
+																			"operator": "+=",
+																			"type": "uint256"
+																		},
+																		"children": [
+																			{
+																				"attributes": {
+																					"type": "uint256"
+																				},
+																				"children": [
+																					{
+																						"attributes": {
+																							"type": "mapping(address => uint256)",
+																							"value": "balances"
+																						},
+																						"id": 218,
+																						"name": "Identifier",
+																						"src": "757:8:0"
+																					},
+																					{
+																						"attributes": {
+																							"type": "address",
+																							"value": "_to"
+																						},
+																						"id": 219,
+																						"name": "Identifier",
+																						"src": "766:3:0"
+																					}
+																				],
+																				"id": 220,
+																				"name": "IndexAccess",
+																				"src": "757:13:0"
+																			},
+																			{
+																				"attributes": {
+																					"type": "uint256",
+																					"value": "_value"
+																				},
+																				"id": 221,
+																				"name": "Identifier",
+																				"src": "774:6:0"
+																			}
+																		],
+																		"id": 222,
+																		"name": "Assignment",
+																		"src": "757:23:0"
+																	}
+																],
+																"id": 223,
+																"name": "ExpressionStatement",
+																"src": "757:23:0"
+															},
+															{
+																"children": [
+																	{
+																		"attributes": {
+																			"operator": "-=",
+																			"type": "uint256"
+																		},
+																		"children": [
+																			{
+																				"attributes": {
+																					"type": "uint256"
+																				},
+																				"children": [
+																					{
+																						"attributes": {
+																							"type": "mapping(address => uint256)",
+																							"value": "balances"
+																						},
+																						"id": 224,
+																						"name": "Identifier",
+																						"src": "794:8:0"
+																					},
+																					{
+																						"attributes": {
+																							"type": "address",
+																							"value": "_from"
+																						},
+																						"id": 225,
+																						"name": "Identifier",
+																						"src": "803:5:0"
+																					}
+																				],
+																				"id": 226,
+																				"name": "IndexAccess",
+																				"src": "794:15:0"
+																			},
+																			{
+																				"attributes": {
+																					"type": "uint256",
+																					"value": "_value"
+																				},
+																				"id": 227,
+																				"name": "Identifier",
+																				"src": "813:6:0"
+																			}
+																		],
+																		"id": 228,
+																		"name": "Assignment",
+																		"src": "794:25:0"
+																	}
+																],
+																"id": 229,
+																"name": "ExpressionStatement",
+																"src": "794:25:0"
+															},
+															{
+																"children": [
+																	{
+																		"attributes": {
+																			"operator": "-=",
+																			"type": "uint256"
+																		},
+																		"children": [
+																			{
+																				"attributes": {
+																					"type": "uint256"
+																				},
+																				"children": [
+																					{
+																						"attributes": {
+																							"type": "mapping(address => uint256)"
+																						},
+																						"children": [
+																							{
+																								"attributes": {
+																									"type": "mapping(address => mapping(address => uint256))",
+																									"value": "allowed"
+																								},
+																								"id": 230,
+																								"name": "Identifier",
+																								"src": "833:7:0"
+																							},
+																							{
+																								"attributes": {
+																									"type": "address",
+																									"value": "_from"
+																								},
+																								"id": 231,
+																								"name": "Identifier",
+																								"src": "841:5:0"
+																							}
+																						],
+																						"id": 234,
+																						"name": "IndexAccess",
+																						"src": "833:14:0"
+																					},
+																					{
+																						"attributes": {
+																							"member_name": "sender",
+																							"type": "address"
+																						},
+																						"children": [
+																							{
+																								"attributes": {
+																									"type": "msg",
+																									"value": "msg"
+																								},
+																								"id": 232,
+																								"name": "Identifier",
+																								"src": "848:3:0"
+																							}
+																						],
+																						"id": 233,
+																						"name": "MemberAccess",
+																						"src": "848:10:0"
+																					}
+																				],
+																				"id": 235,
+																				"name": "IndexAccess",
+																				"src": "833:26:0"
+																			},
+																			{
+																				"attributes": {
+																					"type": "uint256",
+																					"value": "_value"
+																				},
+																				"id": 236,
+																				"name": "Identifier",
+																				"src": "863:6:0"
+																			}
+																		],
+																		"id": 237,
+																		"name": "Assignment",
+																		"src": "833:36:0"
+																	}
+																],
+																"id": 238,
+																"name": "ExpressionStatement",
+																"src": "833:36:0"
+															},
+															{
+																"children": [
+																	{
+																		"attributes": {
+																			"type": "tuple()",
+																			"type_conversion": false
+																		},
+																		"children": [
+																			{
+																				"attributes": {
+																					"type": "function (address,address,uint256) constant",
+																					"value": "Transfer"
+																				},
+																				"id": 239,
+																				"name": "Identifier",
+																				"src": "883:8:0"
+																			},
+																			{
+																				"attributes": {
+																					"type": "address",
+																					"value": "_from"
+																				},
+																				"id": 240,
+																				"name": "Identifier",
+																				"src": "892:5:0"
+																			},
+																			{
+																				"attributes": {
+																					"type": "address",
+																					"value": "_to"
+																				},
+																				"id": 241,
+																				"name": "Identifier",
+																				"src": "899:3:0"
+																			},
+																			{
+																				"attributes": {
+																					"type": "uint256",
+																					"value": "_value"
+																				},
+																				"id": 242,
+																				"name": "Identifier",
+																				"src": "904:6:0"
+																			}
+																		],
+																		"id": 243,
+																		"name": "FunctionCall",
+																		"src": "883:28:0"
+																	}
+																],
+																"id": 244,
+																"name": "ExpressionStatement",
+																"src": "883:28:0"
+															},
+															{
+																"children": [
+																	{
+																		"attributes": {
+																			"hexvalue": "74727565",
+																			"subdenomination": null,
+																			"token": "true",
+																			"type": "bool",
+																			"value": "true"
+																		},
+																		"id": 245,
+																		"name": "Literal",
+																		"src": "932:4:0"
+																	}
+																],
+																"id": 246,
+																"name": "Return",
+																"src": "925:11:0"
+															}
+														],
+														"id": 247,
+														"name": "Block",
+														"src": "743:204:0"
+													},
+													{
+														"children": [
+															{
+																"children": [
+																	{
+																		"attributes": {
+																			"hexvalue": "66616c7365",
+																			"subdenomination": null,
+																			"token": "false",
+																			"type": "bool",
+																			"value": "false"
+																		},
+																		"id": 248,
+																		"name": "Literal",
+																		"src": "962:5:0"
+																	}
+																],
+																"id": 249,
+																"name": "Return",
+																"src": "955:12:0"
+															}
+														],
+														"id": 250,
+														"name": "Block",
+														"src": "953:17:0"
+													}
+												],
+												"id": 251,
+												"name": "IfStatement",
+												"src": "629:341:0"
+											}
+										],
+										"id": 252,
+										"name": "Block",
+										"src": "619:357:0"
+									}
+								],
+								"id": 253,
+								"name": "FunctionDefinition",
+								"src": "541:435:0"
+							},
+							{
+								"attributes": {
+									"constant": true,
+									"name": "balanceOf",
+									"payable": false,
+									"visibility": "public"
+								},
+								"children": [
+									{
+										"children": [
+											{
+												"attributes": {
+													"constant": false,
+													"name": "_owner",
+													"storageLocation": "default",
+													"type": "address",
+													"visibility": "internal"
+												},
+												"children": [
+													{
+														"attributes": {
+															"name": "address"
+														},
+														"id": 254,
+														"name": "ElementaryTypeName",
+														"src": "1001:7:0"
+													}
+												],
+												"id": 255,
+												"name": "VariableDeclaration",
+												"src": "1001:14:0"
+											}
+										],
+										"id": 256,
+										"name": "ParameterList",
+										"src": "1000:16:0"
+									},
+									{
+										"children": [
+											{
+												"attributes": {
+													"constant": false,
+													"name": "",
+													"storageLocation": "default",
+													"type": "uint256",
+													"visibility": "internal"
+												},
+												"children": [
+													{
+														"attributes": {
+															"name": "uint"
+														},
+														"id": 257,
+														"name": "ElementaryTypeName",
+														"src": "1035:4:0"
+													}
+												],
+												"id": 258,
+												"name": "VariableDeclaration",
+												"src": "1035:4:0"
+											}
+										],
+										"id": 259,
+										"name": "ParameterList",
+										"src": "1034:6:0"
+									},
+									{
+										"children": [
+											{
+												"children": [
+													{
+														"attributes": {
+															"type": "uint256"
+														},
+														"children": [
+															{
+																"attributes": {
+																	"type": "mapping(address => uint256)",
+																	"value": "balances"
+																},
+																"id": 260,
+																"name": "Identifier",
+																"src": "1058:8:0"
+															},
+															{
+																"attributes": {
+																	"type": "address",
+																	"value": "_owner"
+																},
+																"id": 261,
+																"name": "Identifier",
+																"src": "1067:6:0"
+															}
+														],
+														"id": 262,
+														"name": "IndexAccess",
+														"src": "1058:16:0"
+													}
+												],
+												"id": 263,
+												"name": "Return",
+												"src": "1051:23:0"
+											}
+										],
+										"id": 264,
+										"name": "Block",
+										"src": "1041:40:0"
+									}
+								],
+								"id": 265,
+								"name": "FunctionDefinition",
+								"src": "982:99:0"
+							},
+							{
+								"attributes": {
+									"constant": false,
+									"name": "approve",
+									"payable": false,
+									"visibility": "public"
+								},
+								"children": [
+									{
+										"children": [
+											{
+												"attributes": {
+													"constant": false,
+													"name": "_spender",
+													"storageLocation": "default",
+													"type": "address",
+													"visibility": "internal"
+												},
+												"children": [
+													{
+														"attributes": {
+															"name": "address"
+														},
+														"id": 266,
+														"name": "ElementaryTypeName",
+														"src": "1104:7:0"
+													}
+												],
+												"id": 267,
+												"name": "VariableDeclaration",
+												"src": "1104:16:0"
+											},
+											{
+												"attributes": {
+													"constant": false,
+													"name": "_value",
+													"storageLocation": "default",
+													"type": "uint256",
+													"visibility": "internal"
+												},
+												"children": [
+													{
+														"attributes": {
+															"name": "uint"
+														},
+														"id": 268,
+														"name": "ElementaryTypeName",
+														"src": "1122:4:0"
+													}
+												],
+												"id": 269,
+												"name": "VariableDeclaration",
+												"src": "1122:11:0"
+											}
+										],
+										"id": 270,
+										"name": "ParameterList",
+										"src": "1103:31:0"
+									},
+									{
+										"children": [
+											{
+												"attributes": {
+													"constant": false,
+													"name": "",
+													"storageLocation": "default",
+													"type": "bool",
+													"visibility": "internal"
+												},
+												"children": [
+													{
+														"attributes": {
+															"name": "bool"
+														},
+														"id": 271,
+														"name": "ElementaryTypeName",
+														"src": "1144:4:0"
+													}
+												],
+												"id": 272,
+												"name": "VariableDeclaration",
+												"src": "1144:4:0"
+											}
+										],
+										"id": 273,
+										"name": "ParameterList",
+										"src": "1143:6:0"
+									},
+									{
+										"children": [
+											{
+												"children": [
+													{
+														"attributes": {
+															"operator": "=",
+															"type": "uint256"
+														},
+														"children": [
+															{
+																"attributes": {
+																	"type": "uint256"
+																},
+																"children": [
+																	{
+																		"attributes": {
+																			"type": "mapping(address => uint256)"
+																		},
+																		"children": [
+																			{
+																				"attributes": {
+																					"type": "mapping(address => mapping(address => uint256))",
+																					"value": "allowed"
+																				},
+																				"id": 274,
+																				"name": "Identifier",
+																				"src": "1160:7:0"
+																			},
+																			{
+																				"attributes": {
+																					"member_name": "sender",
+																					"type": "address"
+																				},
+																				"children": [
+																					{
+																						"attributes": {
+																							"type": "msg",
+																							"value": "msg"
+																						},
+																						"id": 275,
+																						"name": "Identifier",
+																						"src": "1168:3:0"
+																					}
+																				],
+																				"id": 276,
+																				"name": "MemberAccess",
+																				"src": "1168:10:0"
+																			}
+																		],
+																		"id": 278,
+																		"name": "IndexAccess",
+																		"src": "1160:19:0"
+																	},
+																	{
+																		"attributes": {
+																			"type": "address",
+																			"value": "_spender"
+																		},
+																		"id": 277,
+																		"name": "Identifier",
+																		"src": "1180:8:0"
+																	}
+																],
+																"id": 279,
+																"name": "IndexAccess",
+																"src": "1160:29:0"
+															},
+															{
+																"attributes": {
+																	"type": "uint256",
+																	"value": "_value"
+																},
+																"id": 280,
+																"name": "Identifier",
+																"src": "1192:6:0"
+															}
+														],
+														"id": 281,
+														"name": "Assignment",
+														"src": "1160:38:0"
+													}
+												],
+												"id": 282,
+												"name": "ExpressionStatement",
+												"src": "1160:38:0"
+											},
+											{
+												"children": [
+													{
+														"attributes": {
+															"type": "tuple()",
+															"type_conversion": false
+														},
+														"children": [
+															{
+																"attributes": {
+																	"type": "function (address,address,uint256) constant",
+																	"value": "Approval"
+																},
+																"id": 283,
+																"name": "Identifier",
+																"src": "1208:8:0"
+															},
+															{
+																"attributes": {
+																	"member_name": "sender",
+																	"type": "address"
+																},
+																"children": [
+																	{
+																		"attributes": {
+																			"type": "msg",
+																			"value": "msg"
+																		},
+																		"id": 284,
+																		"name": "Identifier",
+																		"src": "1217:3:0"
+																	}
+																],
+																"id": 285,
+																"name": "MemberAccess",
+																"src": "1217:10:0"
+															},
+															{
+																"attributes": {
+																	"type": "address",
+																	"value": "_spender"
+																},
+																"id": 286,
+																"name": "Identifier",
+																"src": "1229:8:0"
+															},
+															{
+																"attributes": {
+																	"type": "uint256",
+																	"value": "_value"
+																},
+																"id": 287,
+																"name": "Identifier",
+																"src": "1239:6:0"
+															}
+														],
+														"id": 288,
+														"name": "FunctionCall",
+														"src": "1208:38:0"
+													}
+												],
+												"id": 289,
+												"name": "ExpressionStatement",
+												"src": "1208:38:0"
+											},
+											{
+												"children": [
+													{
+														"attributes": {
+															"hexvalue": "74727565",
+															"subdenomination": null,
+															"token": "true",
+															"type": "bool",
+															"value": "true"
+														},
+														"id": 290,
+														"name": "Literal",
+														"src": "1263:4:0"
+													}
+												],
+												"id": 291,
+												"name": "Return",
+												"src": "1256:11:0"
+											}
+										],
+										"id": 292,
+										"name": "Block",
+										"src": "1150:124:0"
+									}
+								],
+								"id": 293,
+								"name": "FunctionDefinition",
+								"src": "1087:187:0"
+							},
+							{
+								"attributes": {
+									"constant": true,
+									"name": "allowance",
+									"payable": false,
+									"visibility": "public"
+								},
+								"children": [
+									{
+										"children": [
+											{
+												"attributes": {
+													"constant": false,
+													"name": "_owner",
+													"storageLocation": "default",
+													"type": "address",
+													"visibility": "internal"
+												},
+												"children": [
+													{
+														"attributes": {
+															"name": "address"
+														},
+														"id": 294,
+														"name": "ElementaryTypeName",
+														"src": "1299:7:0"
+													}
+												],
+												"id": 295,
+												"name": "VariableDeclaration",
+												"src": "1299:14:0"
+											},
+											{
+												"attributes": {
+													"constant": false,
+													"name": "_spender",
+													"storageLocation": "default",
+													"type": "address",
+													"visibility": "internal"
+												},
+												"children": [
+													{
+														"attributes": {
+															"name": "address"
+														},
+														"id": 296,
+														"name": "ElementaryTypeName",
+														"src": "1315:7:0"
+													}
+												],
+												"id": 297,
+												"name": "VariableDeclaration",
+												"src": "1315:16:0"
+											}
+										],
+										"id": 298,
+										"name": "ParameterList",
+										"src": "1298:34:0"
+									},
+									{
+										"children": [
+											{
+												"attributes": {
+													"constant": false,
+													"name": "",
+													"storageLocation": "default",
+													"type": "uint256",
+													"visibility": "internal"
+												},
+												"children": [
+													{
+														"attributes": {
+															"name": "uint"
+														},
+														"id": 299,
+														"name": "ElementaryTypeName",
+														"src": "1351:4:0"
+													}
+												],
+												"id": 300,
+												"name": "VariableDeclaration",
+												"src": "1351:4:0"
+											}
+										],
+										"id": 301,
+										"name": "ParameterList",
+										"src": "1350:6:0"
+									},
+									{
+										"children": [
+											{
+												"children": [
+													{
+														"attributes": {
+															"type": "uint256"
+														},
+														"children": [
+															{
+																"attributes": {
+																	"type": "mapping(address => uint256)"
+																},
+																"children": [
+																	{
+																		"attributes": {
+																			"type": "mapping(address => mapping(address => uint256))",
+																			"value": "allowed"
+																		},
+																		"id": 302,
+																		"name": "Identifier",
+																		"src": "1374:7:0"
+																	},
+																	{
+																		"attributes": {
+																			"type": "address",
+																			"value": "_owner"
+																		},
+																		"id": 303,
+																		"name": "Identifier",
+																		"src": "1382:6:0"
+																	}
+																],
+																"id": 304,
+																"name": "IndexAccess",
+																"src": "1374:15:0"
+															},
+															{
+																"attributes": {
+																	"type": "address",
+																	"value": "_spender"
+																},
+																"id": 305,
+																"name": "Identifier",
+																"src": "1390:8:0"
+															}
+														],
+														"id": 306,
+														"name": "IndexAccess",
+														"src": "1374:25:0"
+													}
+												],
+												"id": 307,
+												"name": "Return",
+												"src": "1367:32:0"
+											}
+										],
+										"id": 308,
+										"name": "Block",
+										"src": "1357:49:0"
+									}
+								],
+								"id": 309,
+								"name": "FunctionDefinition",
+								"src": "1280:126:0"
+							},
+							{
+								"attributes": {
+									"constant": false,
+									"name": "balances",
+									"storageLocation": "default",
+									"type": "mapping(address => uint256)",
+									"visibility": "internal"
+								},
+								"children": [
+									{
+										"children": [
+											{
+												"attributes": {
+													"name": "address"
+												},
+												"id": 310,
+												"name": "ElementaryTypeName",
+												"src": "1421:7:0"
+											},
+											{
+												"attributes": {
+													"name": "uint"
+												},
+												"id": 311,
+												"name": "ElementaryTypeName",
+												"src": "1432:4:0"
+											}
+										],
+										"id": 312,
+										"name": "Mapping",
+										"src": "1412:25:0"
+									}
+								],
+								"id": 313,
+								"name": "VariableDeclaration",
+								"src": "1412:34:0"
+							},
+							{
+								"attributes": {
+									"constant": false,
+									"name": "allowed",
+									"storageLocation": "default",
+									"type": "mapping(address => mapping(address => uint256))",
+									"visibility": "internal"
+								},
+								"children": [
+									{
+										"children": [
+											{
+												"attributes": {
+													"name": "address"
+												},
+												"id": 314,
+												"name": "ElementaryTypeName",
+												"src": "1461:7:0"
+											},
+											{
+												"children": [
+													{
+														"attributes": {
+															"name": "address"
+														},
+														"id": 315,
+														"name": "ElementaryTypeName",
+														"src": "1481:7:0"
+													},
+													{
+														"attributes": {
+															"name": "uint"
+														},
+														"id": 316,
+														"name": "ElementaryTypeName",
+														"src": "1492:4:0"
+													}
+												],
+												"id": 317,
+												"name": "Mapping",
+												"src": "1472:25:0"
+											}
+										],
+										"id": 318,
+										"name": "Mapping",
+										"src": "1452:46:0"
+									}
+								],
+								"id": 319,
+								"name": "VariableDeclaration",
+								"src": "1452:54:0"
+							},
+							{
+								"attributes": {
+									"constant": false,
+									"name": "totalSupply",
+									"storageLocation": "default",
+									"type": "uint256",
+									"visibility": "public"
+								},
+								"children": [
+									{
+										"attributes": {
+											"name": "uint"
+										},
+										"id": 320,
+										"name": "ElementaryTypeName",
+										"src": "1512:4:0"
+									}
+								],
+								"id": 321,
+								"name": "VariableDeclaration",
+								"src": "1512:23:0"
+							}
+						],
+						"id": 322,
+						"name": "ContractDefinition",
+						"src": "86:1452:0"
+					}
+				],
+				"name": "SourceUnit"
+			}
+		},
+		"1.0.0/Token/Token_v1.sol": {
+			"id": 1,
+			"legacyAST": {
+				"children": [
+					{
+						"attributes": {
+							"literals": [
+								"solidity",
+								"^",
+								"0.4",
+								".11"
+							]
+						},
+						"id": 324,
+						"name": "PragmaDirective",
+						"src": "0:24:1"
+					},
+					{
+						"attributes": {
+							"fullyImplemented": true,
+							"isLibrary": false,
+							"linearizedBaseContracts": [
+								397
+							],
+							"name": "Token_v1"
+						},
+						"children": [
+							{
+								"attributes": {
+									"constant": true,
+									"name": "totalSupply",
+									"payable": false,
+									"visibility": "public"
+								},
+								"children": [
+									{
+										"children": [],
+										"id": 325,
+										"name": "ParameterList",
+										"src": "110:2:1"
+									},
+									{
+										"children": [
+											{
+												"attributes": {
+													"constant": false,
+													"name": "supply",
+													"storageLocation": "default",
+													"type": "uint256",
+													"visibility": "internal"
+												},
+												"children": [
+													{
+														"attributes": {
+															"name": "uint"
+														},
+														"id": 326,
+														"name": "ElementaryTypeName",
+														"src": "131:4:1"
+													}
+												],
+												"id": 327,
+												"name": "VariableDeclaration",
+												"src": "131:11:1"
+											}
+										],
+										"id": 328,
+										"name": "ParameterList",
+										"src": "130:13:1"
+									},
+									{
+										"children": [],
+										"id": 329,
+										"name": "Block",
+										"src": "144:2:1"
+									}
+								],
+								"id": 330,
+								"name": "FunctionDefinition",
+								"src": "90:56:1"
+							},
+							{
+								"attributes": {
+									"constant": true,
+									"name": "balanceOf",
+									"payable": false,
+									"visibility": "public"
+								},
+								"children": [
+									{
+										"children": [
+											{
+												"attributes": {
+													"constant": false,
+													"name": "_owner",
+													"storageLocation": "default",
+													"type": "address",
+													"visibility": "internal"
+												},
+												"children": [
+													{
+														"attributes": {
+															"name": "address"
+														},
+														"id": 331,
+														"name": "ElementaryTypeName",
+														"src": "274:7:1"
+													}
+												],
+												"id": 332,
+												"name": "VariableDeclaration",
+												"src": "274:14:1"
+											}
+										],
+										"id": 333,
+										"name": "ParameterList",
+										"src": "273:16:1"
+									},
+									{
+										"children": [
+											{
+												"attributes": {
+													"constant": false,
+													"name": "balance",
+													"storageLocation": "default",
+													"type": "uint256",
+													"visibility": "internal"
+												},
+												"children": [
+													{
+														"attributes": {
+															"name": "uint"
+														},
+														"id": 334,
+														"name": "ElementaryTypeName",
+														"src": "308:4:1"
+													}
+												],
+												"id": 335,
+												"name": "VariableDeclaration",
+												"src": "308:12:1"
+											}
+										],
+										"id": 336,
+										"name": "ParameterList",
+										"src": "307:14:1"
+									},
+									{
+										"children": [],
+										"id": 337,
+										"name": "Block",
+										"src": "322:2:1"
+									}
+								],
+								"id": 338,
+								"name": "FunctionDefinition",
+								"src": "255:69:1"
+							},
+							{
+								"attributes": {
+									"constant": false,
+									"name": "transfer",
+									"payable": false,
+									"visibility": "public"
+								},
+								"children": [
+									{
+										"children": [
+											{
+												"attributes": {
+													"constant": false,
+													"name": "_to",
+													"storageLocation": "default",
+													"type": "address",
+													"visibility": "internal"
+												},
+												"children": [
+													{
+														"attributes": {
+															"name": "address"
+														},
+														"id": 339,
+														"name": "ElementaryTypeName",
+														"src": "578:7:1"
+													}
+												],
+												"id": 340,
+												"name": "VariableDeclaration",
+												"src": "578:11:1"
+											},
+											{
+												"attributes": {
+													"constant": false,
+													"name": "_value",
+													"storageLocation": "default",
+													"type": "uint256",
+													"visibility": "internal"
+												},
+												"children": [
+													{
+														"attributes": {
+															"name": "uint"
+														},
+														"id": 341,
+														"name": "ElementaryTypeName",
+														"src": "591:4:1"
+													}
+												],
+												"id": 342,
+												"name": "VariableDeclaration",
+												"src": "591:11:1"
+											}
+										],
+										"id": 343,
+										"name": "ParameterList",
+										"src": "577:26:1"
+									},
+									{
+										"children": [
+											{
+												"attributes": {
+													"constant": false,
+													"name": "success",
+													"storageLocation": "default",
+													"type": "bool",
+													"visibility": "internal"
+												},
+												"children": [
+													{
+														"attributes": {
+															"name": "bool"
+														},
+														"id": 344,
+														"name": "ElementaryTypeName",
+														"src": "613:4:1"
+													}
+												],
+												"id": 345,
+												"name": "VariableDeclaration",
+												"src": "613:12:1"
+											}
+										],
+										"id": 346,
+										"name": "ParameterList",
+										"src": "612:14:1"
+									},
+									{
+										"children": [],
+										"id": 347,
+										"name": "Block",
+										"src": "627:2:1"
+									}
+								],
+								"id": 348,
+								"name": "FunctionDefinition",
+								"src": "560:69:1"
+							},
+							{
+								"attributes": {
+									"constant": false,
+									"name": "transferFrom",
+									"payable": false,
+									"visibility": "public"
+								},
+								"children": [
+									{
+										"children": [
+											{
+												"attributes": {
+													"constant": false,
+													"name": "_from",
+													"storageLocation": "default",
+													"type": "address",
+													"visibility": "internal"
+												},
+												"children": [
+													{
+														"attributes": {
+															"name": "address"
+														},
+														"id": 349,
+														"name": "ElementaryTypeName",
+														"src": "972:7:1"
+													}
+												],
+												"id": 350,
+												"name": "VariableDeclaration",
+												"src": "972:13:1"
+											},
+											{
+												"attributes": {
+													"constant": false,
+													"name": "_to",
+													"storageLocation": "default",
+													"type": "address",
+													"visibility": "internal"
+												},
+												"children": [
+													{
+														"attributes": {
+															"name": "address"
+														},
+														"id": 351,
+														"name": "ElementaryTypeName",
+														"src": "987:7:1"
+													}
+												],
+												"id": 352,
+												"name": "VariableDeclaration",
+												"src": "987:11:1"
+											},
+											{
+												"attributes": {
+													"constant": false,
+													"name": "_value",
+													"storageLocation": "default",
+													"type": "uint256",
+													"visibility": "internal"
+												},
+												"children": [
+													{
+														"attributes": {
+															"name": "uint"
+														},
+														"id": 353,
+														"name": "ElementaryTypeName",
+														"src": "1000:4:1"
+													}
+												],
+												"id": 354,
+												"name": "VariableDeclaration",
+												"src": "1000:11:1"
+											}
+										],
+										"id": 355,
+										"name": "ParameterList",
+										"src": "971:41:1"
+									},
+									{
+										"children": [
+											{
+												"attributes": {
+													"constant": false,
+													"name": "success",
+													"storageLocation": "default",
+													"type": "bool",
+													"visibility": "internal"
+												},
+												"children": [
+													{
+														"attributes": {
+															"name": "bool"
+														},
+														"id": 356,
+														"name": "ElementaryTypeName",
+														"src": "1022:4:1"
+													}
+												],
+												"id": 357,
+												"name": "VariableDeclaration",
+												"src": "1022:12:1"
+											}
+										],
+										"id": 358,
+										"name": "ParameterList",
+										"src": "1021:14:1"
+									},
+									{
+										"children": [],
+										"id": 359,
+										"name": "Block",
+										"src": "1036:2:1"
+									}
+								],
+								"id": 360,
+								"name": "FunctionDefinition",
+								"src": "950:88:1"
+							},
+							{
+								"attributes": {
+									"constant": false,
+									"name": "approve",
+									"payable": false,
+									"visibility": "public"
+								},
+								"children": [
+									{
+										"children": [
+											{
+												"attributes": {
+													"constant": false,
+													"name": "_spender",
+													"storageLocation": "default",
+													"type": "address",
+													"visibility": "internal"
+												},
+												"children": [
+													{
+														"attributes": {
+															"name": "address"
+														},
+														"id": 361,
+														"name": "ElementaryTypeName",
+														"src": "1338:7:1"
+													}
+												],
+												"id": 362,
+												"name": "VariableDeclaration",
+												"src": "1338:16:1"
+											},
+											{
+												"attributes": {
+													"constant": false,
+													"name": "_value",
+													"storageLocation": "default",
+													"type": "uint256",
+													"visibility": "internal"
+												},
+												"children": [
+													{
+														"attributes": {
+															"name": "uint"
+														},
+														"id": 363,
+														"name": "ElementaryTypeName",
+														"src": "1356:4:1"
+													}
+												],
+												"id": 364,
+												"name": "VariableDeclaration",
+												"src": "1356:11:1"
+											}
+										],
+										"id": 365,
+										"name": "ParameterList",
+										"src": "1337:31:1"
+									},
+									{
+										"children": [
+											{
+												"attributes": {
+													"constant": false,
+													"name": "success",
+													"storageLocation": "default",
+													"type": "bool",
+													"visibility": "internal"
+												},
+												"children": [
+													{
+														"attributes": {
+															"name": "bool"
+														},
+														"id": 366,
+														"name": "ElementaryTypeName",
+														"src": "1378:4:1"
+													}
+												],
+												"id": 367,
+												"name": "VariableDeclaration",
+												"src": "1378:12:1"
+											}
+										],
+										"id": 368,
+										"name": "ParameterList",
+										"src": "1377:14:1"
+									},
+									{
+										"children": [],
+										"id": 369,
+										"name": "Block",
+										"src": "1392:2:1"
+									}
+								],
+								"id": 370,
+								"name": "FunctionDefinition",
+								"src": "1321:73:1"
+							},
+							{
+								"attributes": {
+									"constant": true,
+									"name": "allowance",
+									"payable": false,
+									"visibility": "public"
+								},
+								"children": [
+									{
+										"children": [
+											{
+												"attributes": {
+													"constant": false,
+													"name": "_owner",
+													"storageLocation": "default",
+													"type": "address",
+													"visibility": "internal"
+												},
+												"children": [
+													{
+														"attributes": {
+															"name": "address"
+														},
+														"id": 371,
+														"name": "ElementaryTypeName",
+														"src": "1621:7:1"
+													}
+												],
+												"id": 372,
+												"name": "VariableDeclaration",
+												"src": "1621:14:1"
+											},
+											{
+												"attributes": {
+													"constant": false,
+													"name": "_spender",
+													"storageLocation": "default",
+													"type": "address",
+													"visibility": "internal"
+												},
+												"children": [
+													{
+														"attributes": {
+															"name": "address"
+														},
+														"id": 373,
+														"name": "ElementaryTypeName",
+														"src": "1637:7:1"
+													}
+												],
+												"id": 374,
+												"name": "VariableDeclaration",
+												"src": "1637:16:1"
+											}
+										],
+										"id": 375,
+										"name": "ParameterList",
+										"src": "1620:34:1"
+									},
+									{
+										"children": [
+											{
+												"attributes": {
+													"constant": false,
+													"name": "remaining",
+													"storageLocation": "default",
+													"type": "uint256",
+													"visibility": "internal"
+												},
+												"children": [
+													{
+														"attributes": {
+															"name": "uint"
+														},
+														"id": 376,
+														"name": "ElementaryTypeName",
+														"src": "1673:4:1"
+													}
+												],
+												"id": 377,
+												"name": "VariableDeclaration",
+												"src": "1673:14:1"
+											}
+										],
+										"id": 378,
+										"name": "ParameterList",
+										"src": "1672:16:1"
+									},
+									{
+										"children": [],
+										"id": 379,
+										"name": "Block",
+										"src": "1689:2:1"
+									}
+								],
+								"id": 380,
+								"name": "FunctionDefinition",
+								"src": "1602:89:1"
+							},
+							{
+								"attributes": {
+									"name": "Transfer"
+								},
+								"children": [
+									{
+										"children": [
+											{
+												"attributes": {
+													"constant": false,
+													"indexed": true,
+													"name": "_from",
+													"storageLocation": "default",
+													"type": "address",
+													"visibility": "internal"
+												},
+												"children": [
+													{
+														"attributes": {
+															"name": "address"
+														},
+														"id": 381,
+														"name": "ElementaryTypeName",
+														"src": "1712:7:1"
+													}
+												],
+												"id": 382,
+												"name": "VariableDeclaration",
+												"src": "1712:21:1"
+											},
+											{
+												"attributes": {
+													"constant": false,
+													"indexed": true,
+													"name": "_to",
+													"storageLocation": "default",
+													"type": "address",
+													"visibility": "internal"
+												},
+												"children": [
+													{
+														"attributes": {
+															"name": "address"
+														},
+														"id": 383,
+														"name": "ElementaryTypeName",
+														"src": "1735:7:1"
+													}
+												],
+												"id": 384,
+												"name": "VariableDeclaration",
+												"src": "1735:19:1"
+											},
+											{
+												"attributes": {
+													"constant": false,
+													"indexed": false,
+													"name": "_value",
+													"storageLocation": "default",
+													"type": "uint256",
+													"visibility": "internal"
+												},
+												"children": [
+													{
+														"attributes": {
+															"name": "uint"
+														},
+														"id": 385,
+														"name": "ElementaryTypeName",
+														"src": "1756:4:1"
+													}
+												],
+												"id": 386,
+												"name": "VariableDeclaration",
+												"src": "1756:11:1"
+											}
+										],
+										"id": 387,
+										"name": "ParameterList",
+										"src": "1711:57:1"
+									}
+								],
+								"id": 388,
+								"name": "EventDefinition",
+								"src": "1697:72:1"
+							},
+							{
+								"attributes": {
+									"name": "Approval"
+								},
+								"children": [
+									{
+										"children": [
+											{
+												"attributes": {
+													"constant": false,
+													"indexed": true,
+													"name": "_owner",
+													"storageLocation": "default",
+													"type": "address",
+													"visibility": "internal"
+												},
+												"children": [
+													{
+														"attributes": {
+															"name": "address"
+														},
+														"id": 389,
+														"name": "ElementaryTypeName",
+														"src": "1789:7:1"
+													}
+												],
+												"id": 390,
+												"name": "VariableDeclaration",
+												"src": "1789:22:1"
+											},
+											{
+												"attributes": {
+													"constant": false,
+													"indexed": true,
+													"name": "_spender",
+													"storageLocation": "default",
+													"type": "address",
+													"visibility": "internal"
+												},
+												"children": [
+													{
+														"attributes": {
+															"name": "address"
+														},
+														"id": 391,
+														"name": "ElementaryTypeName",
+														"src": "1813:7:1"
+													}
+												],
+												"id": 392,
+												"name": "VariableDeclaration",
+												"src": "1813:24:1"
+											},
+											{
+												"attributes": {
+													"constant": false,
+													"indexed": false,
+													"name": "_value",
+													"storageLocation": "default",
+													"type": "uint256",
+													"visibility": "internal"
+												},
+												"children": [
+													{
+														"attributes": {
+															"name": "uint"
+														},
+														"id": 393,
+														"name": "ElementaryTypeName",
+														"src": "1839:4:1"
+													}
+												],
+												"id": 394,
+												"name": "VariableDeclaration",
+												"src": "1839:11:1"
+											}
+										],
+										"id": 395,
+										"name": "ParameterList",
+										"src": "1788:63:1"
+									}
+								],
+								"id": 396,
+								"name": "EventDefinition",
+								"src": "1774:78:1"
+							}
+						],
+						"id": 397,
+						"name": "ContractDefinition",
+						"src": "26:1828:1"
+					}
+				],
+				"name": "SourceUnit"
+			}
+		},
+		"1.0.0/UnlimitedAllowanceToken/UnlimitedAllowanceToken_v1.sol": {
+			"id": 2,
+			"legacyAST": {
+				"children": [
+					{
+						"attributes": {
+							"literals": [
+								"solidity",
+								"^",
+								"0.4",
+								".11"
+							]
+						},
+						"id": 33,
+						"name": "PragmaDirective",
+						"src": "580:24:2"
+					},
+					{
+						"attributes": {
+							"file": "../ERC20Token/ERC20Token_v1.sol"
+						},
+						"id": 35,
+						"name": "ImportDirective",
+						"src": "606:78:2"
+					},
+					{
+						"attributes": {
+							"fullyImplemented": true,
+							"isLibrary": false,
+							"linearizedBaseContracts": [
+								124,
+								322,
+								397
+							],
+							"name": "UnlimitedAllowanceToken_v1"
+						},
+						"children": [
+							{
+								"children": [
+									{
+										"attributes": {
+											"name": "ERC20Token"
+										},
+										"id": 36,
+										"name": "UserDefinedTypeName",
+										"src": "725:10:2"
+									}
+								],
+								"id": 37,
+								"name": "InheritanceSpecifier",
+								"src": "725:10:2"
+							},
+							{
+								"attributes": {
+									"constant": true,
+									"name": "MAX_UINT",
+									"storageLocation": "default",
+									"type": "uint256",
+									"visibility": "internal"
+								},
+								"children": [
+									{
+										"attributes": {
+											"name": "uint"
+										},
+										"id": 38,
+										"name": "ElementaryTypeName",
+										"src": "743:4:2"
+									},
+									{
+										"attributes": {
+											"operator": "-",
+											"type": "int_const 115792089237316195423570985008687907853269984665640564039457584007913129639935"
+										},
+										"children": [
+											{
+												"attributes": {
+													"operator": "**",
+													"type": "int_const 115792089237316195423570985008687907853269984665640564039457584007913129639936"
+												},
+												"children": [
+													{
+														"attributes": {
+															"hexvalue": "32",
+															"subdenomination": null,
+															"token": null,
+															"type": "int_const 2",
+															"value": "2"
+														},
+														"id": 39,
+														"name": "Literal",
+														"src": "768:1:2"
+													},
+													{
+														"attributes": {
+															"hexvalue": "323536",
+															"subdenomination": null,
+															"token": null,
+															"type": "int_const 256",
+															"value": "256"
+														},
+														"id": 40,
+														"name": "Literal",
+														"src": "771:3:2"
+													}
+												],
+												"id": 41,
+												"name": "BinaryOperation",
+												"src": "768:6:2"
+											},
+											{
+												"attributes": {
+													"hexvalue": "31",
+													"subdenomination": null,
+													"token": null,
+													"type": "int_const 1",
+													"value": "1"
+												},
+												"id": 42,
+												"name": "Literal",
+												"src": "777:1:2"
+											}
+										],
+										"id": 43,
+										"name": "BinaryOperation",
+										"src": "768:10:2"
+									}
+								],
+								"id": 44,
+								"name": "VariableDeclaration",
+								"src": "743:35:2"
+							},
+							{
+								"attributes": {
+									"constant": false,
+									"name": "transferFrom",
+									"payable": false,
+									"visibility": "public"
+								},
+								"children": [
+									{
+										"children": [
+											{
+												"attributes": {
+													"constant": false,
+													"name": "_from",
+													"storageLocation": "default",
+													"type": "address",
+													"visibility": "internal"
+												},
+												"children": [
+													{
+														"attributes": {
+															"name": "address"
+														},
+														"id": 45,
+														"name": "ElementaryTypeName",
+														"src": "1088:7:2"
+													}
+												],
+												"id": 46,
+												"name": "VariableDeclaration",
+												"src": "1088:13:2"
+											},
+											{
+												"attributes": {
+													"constant": false,
+													"name": "_to",
+													"storageLocation": "default",
+													"type": "address",
+													"visibility": "internal"
+												},
+												"children": [
+													{
+														"attributes": {
+															"name": "address"
+														},
+														"id": 47,
+														"name": "ElementaryTypeName",
+														"src": "1103:7:2"
+													}
+												],
+												"id": 48,
+												"name": "VariableDeclaration",
+												"src": "1103:11:2"
+											},
+											{
+												"attributes": {
+													"constant": false,
+													"name": "_value",
+													"storageLocation": "default",
+													"type": "uint256",
+													"visibility": "internal"
+												},
+												"children": [
+													{
+														"attributes": {
+															"name": "uint"
+														},
+														"id": 49,
+														"name": "ElementaryTypeName",
+														"src": "1116:4:2"
+													}
+												],
+												"id": 50,
+												"name": "VariableDeclaration",
+												"src": "1116:11:2"
+											}
+										],
+										"id": 51,
+										"name": "ParameterList",
+										"src": "1087:41:2"
+									},
+									{
+										"children": [
+											{
+												"attributes": {
+													"constant": false,
+													"name": "",
+													"storageLocation": "default",
+													"type": "bool",
+													"visibility": "internal"
+												},
+												"children": [
+													{
+														"attributes": {
+															"name": "bool"
+														},
+														"id": 52,
+														"name": "ElementaryTypeName",
+														"src": "1161:4:2"
+													}
+												],
+												"id": 53,
+												"name": "VariableDeclaration",
+												"src": "1161:4:2"
+											}
+										],
+										"id": 54,
+										"name": "ParameterList",
+										"src": "1160:6:2"
+									},
+									{
+										"children": [
+											{
+												"children": [
+													{
+														"attributes": {
+															"constant": false,
+															"name": "allowance",
+															"storageLocation": "default",
+															"type": "uint256",
+															"visibility": "internal"
+														},
+														"children": [
+															{
+																"attributes": {
+																	"name": "uint"
+																},
+																"id": 55,
+																"name": "ElementaryTypeName",
+																"src": "1181:4:2"
+															}
+														],
+														"id": 56,
+														"name": "VariableDeclaration",
+														"src": "1181:14:2"
+													},
+													{
+														"attributes": {
+															"type": "uint256"
+														},
+														"children": [
+															{
+																"attributes": {
+																	"type": "mapping(address => uint256)"
+																},
+																"children": [
+																	{
+																		"attributes": {
+																			"type": "mapping(address => mapping(address => uint256))",
+																			"value": "allowed"
+																		},
+																		"id": 57,
+																		"name": "Identifier",
+																		"src": "1198:7:2"
+																	},
+																	{
+																		"attributes": {
+																			"type": "address",
+																			"value": "_from"
+																		},
+																		"id": 58,
+																		"name": "Identifier",
+																		"src": "1206:5:2"
+																	}
+																],
+																"id": 59,
+																"name": "IndexAccess",
+																"src": "1198:14:2"
+															},
+															{
+																"attributes": {
+																	"member_name": "sender",
+																	"type": "address"
+																},
+																"children": [
+																	{
+																		"attributes": {
+																			"type": "msg",
+																			"value": "msg"
+																		},
+																		"id": 60,
+																		"name": "Identifier",
+																		"src": "1213:3:2"
+																	}
+																],
+																"id": 61,
+																"name": "MemberAccess",
+																"src": "1213:10:2"
+															}
+														],
+														"id": 62,
+														"name": "IndexAccess",
+														"src": "1198:26:2"
+													}
+												],
+												"id": 63,
+												"name": "VariableDeclarationStatement",
+												"src": "1181:43:2"
+											},
+											{
+												"children": [
+													{
+														"attributes": {
+															"operator": "&&",
+															"type": "bool"
+														},
+														"children": [
+															{
+																"attributes": {
+																	"operator": "&&",
+																	"type": "bool"
+																},
+																"children": [
+																	{
+																		"attributes": {
+																			"operator": ">=",
+																			"type": "bool"
+																		},
+																		"children": [
+																			{
+																				"attributes": {
+																					"type": "uint256"
+																				},
+																				"children": [
+																					{
+																						"attributes": {
+																							"type": "mapping(address => uint256)",
+																							"value": "balances"
+																						},
+																						"id": 64,
+																						"name": "Identifier",
+																						"src": "1238:8:2"
+																					},
+																					{
+																						"attributes": {
+																							"type": "address",
+																							"value": "_from"
+																						},
+																						"id": 65,
+																						"name": "Identifier",
+																						"src": "1247:5:2"
+																					}
+																				],
+																				"id": 66,
+																				"name": "IndexAccess",
+																				"src": "1238:15:2"
+																			},
+																			{
+																				"attributes": {
+																					"type": "uint256",
+																					"value": "_value"
+																				},
+																				"id": 67,
+																				"name": "Identifier",
+																				"src": "1257:6:2"
+																			}
+																		],
+																		"id": 68,
+																		"name": "BinaryOperation",
+																		"src": "1238:25:2"
+																	},
+																	{
+																		"attributes": {
+																			"operator": ">=",
+																			"type": "bool"
+																		},
+																		"children": [
+																			{
+																				"attributes": {
+																					"type": "uint256",
+																					"value": "allowance"
+																				},
+																				"id": 69,
+																				"name": "Identifier",
+																				"src": "1279:9:2"
+																			},
+																			{
+																				"attributes": {
+																					"type": "uint256",
+																					"value": "_value"
+																				},
+																				"id": 70,
+																				"name": "Identifier",
+																				"src": "1292:6:2"
+																			}
+																		],
+																		"id": 71,
+																		"name": "BinaryOperation",
+																		"src": "1279:19:2"
+																	}
+																],
+																"id": 72,
+																"name": "BinaryOperation",
+																"src": "1238:60:2"
+															},
+															{
+																"attributes": {
+																	"operator": ">=",
+																	"type": "bool"
+																},
+																"children": [
+																	{
+																		"attributes": {
+																			"operator": "+",
+																			"type": "uint256"
+																		},
+																		"children": [
+																			{
+																				"attributes": {
+																					"type": "uint256"
+																				},
+																				"children": [
+																					{
+																						"attributes": {
+																							"type": "mapping(address => uint256)",
+																							"value": "balances"
+																						},
+																						"id": 73,
+																						"name": "Identifier",
+																						"src": "1314:8:2"
+																					},
+																					{
+																						"attributes": {
+																							"type": "address",
+																							"value": "_to"
+																						},
+																						"id": 74,
+																						"name": "Identifier",
+																						"src": "1323:3:2"
+																					}
+																				],
+																				"id": 75,
+																				"name": "IndexAccess",
+																				"src": "1314:13:2"
+																			},
+																			{
+																				"attributes": {
+																					"type": "uint256",
+																					"value": "_value"
+																				},
+																				"id": 76,
+																				"name": "Identifier",
+																				"src": "1330:6:2"
+																			}
+																		],
+																		"id": 77,
+																		"name": "BinaryOperation",
+																		"src": "1314:22:2"
+																	},
+																	{
+																		"attributes": {
+																			"type": "uint256"
+																		},
+																		"children": [
+																			{
+																				"attributes": {
+																					"type": "mapping(address => uint256)",
+																					"value": "balances"
+																				},
+																				"id": 78,
+																				"name": "Identifier",
+																				"src": "1340:8:2"
+																			},
+																			{
+																				"attributes": {
+																					"type": "address",
+																					"value": "_to"
+																				},
+																				"id": 79,
+																				"name": "Identifier",
+																				"src": "1349:3:2"
+																			}
+																		],
+																		"id": 80,
+																		"name": "IndexAccess",
+																		"src": "1340:13:2"
+																	}
+																],
+																"id": 81,
+																"name": "BinaryOperation",
+																"src": "1314:39:2"
+															}
+														],
+														"id": 82,
+														"name": "BinaryOperation",
+														"src": "1238:115:2"
+													},
+													{
+														"children": [
+															{
+																"children": [
+																	{
+																		"attributes": {
+																			"operator": "+=",
+																			"type": "uint256"
+																		},
+																		"children": [
+																			{
+																				"attributes": {
+																					"type": "uint256"
+																				},
+																				"children": [
+																					{
+																						"attributes": {
+																							"type": "mapping(address => uint256)",
+																							"value": "balances"
+																						},
+																						"id": 83,
+																						"name": "Identifier",
+																						"src": "1378:8:2"
+																					},
+																					{
+																						"attributes": {
+																							"type": "address",
+																							"value": "_to"
+																						},
+																						"id": 84,
+																						"name": "Identifier",
+																						"src": "1387:3:2"
+																					}
+																				],
+																				"id": 85,
+																				"name": "IndexAccess",
+																				"src": "1378:13:2"
+																			},
+																			{
+																				"attributes": {
+																					"type": "uint256",
+																					"value": "_value"
+																				},
+																				"id": 86,
+																				"name": "Identifier",
+																				"src": "1395:6:2"
+																			}
+																		],
+																		"id": 87,
+																		"name": "Assignment",
+																		"src": "1378:23:2"
+																	}
+																],
+																"id": 88,
+																"name": "ExpressionStatement",
+																"src": "1378:23:2"
+															},
+															{
+																"children": [
+																	{
+																		"attributes": {
+																			"operator": "-=",
+																			"type": "uint256"
+																		},
+																		"children": [
+																			{
+																				"attributes": {
+																					"type": "uint256"
+																				},
+																				"children": [
+																					{
+																						"attributes": {
+																							"type": "mapping(address => uint256)",
+																							"value": "balances"
+																						},
+																						"id": 89,
+																						"name": "Identifier",
+																						"src": "1415:8:2"
+																					},
+																					{
+																						"attributes": {
+																							"type": "address",
+																							"value": "_from"
+																						},
+																						"id": 90,
+																						"name": "Identifier",
+																						"src": "1424:5:2"
+																					}
+																				],
+																				"id": 91,
+																				"name": "IndexAccess",
+																				"src": "1415:15:2"
+																			},
+																			{
+																				"attributes": {
+																					"type": "uint256",
+																					"value": "_value"
+																				},
+																				"id": 92,
+																				"name": "Identifier",
+																				"src": "1434:6:2"
+																			}
+																		],
+																		"id": 93,
+																		"name": "Assignment",
+																		"src": "1415:25:2"
+																	}
+																],
+																"id": 94,
+																"name": "ExpressionStatement",
+																"src": "1415:25:2"
+															},
+															{
+																"children": [
+																	{
+																		"attributes": {
+																			"operator": "<",
+																			"type": "bool"
+																		},
+																		"children": [
+																			{
+																				"attributes": {
+																					"type": "uint256",
+																					"value": "allowance"
+																				},
+																				"id": 95,
+																				"name": "Identifier",
+																				"src": "1458:9:2"
+																			},
+																			{
+																				"attributes": {
+																					"type": "uint256",
+																					"value": "MAX_UINT"
+																				},
+																				"id": 96,
+																				"name": "Identifier",
+																				"src": "1470:8:2"
+																			}
+																		],
+																		"id": 97,
+																		"name": "BinaryOperation",
+																		"src": "1458:20:2"
+																	},
+																	{
+																		"children": [
+																			{
+																				"children": [
+																					{
+																						"attributes": {
+																							"operator": "-=",
+																							"type": "uint256"
+																						},
+																						"children": [
+																							{
+																								"attributes": {
+																									"type": "uint256"
+																								},
+																								"children": [
+																									{
+																										"attributes": {
+																											"type": "mapping(address => uint256)"
+																										},
+																										"children": [
+																											{
+																												"attributes": {
+																													"type": "mapping(address => mapping(address => uint256))",
+																													"value": "allowed"
+																												},
+																												"id": 98,
+																												"name": "Identifier",
+																												"src": "1498:7:2"
+																											},
+																											{
+																												"attributes": {
+																													"type": "address",
+																													"value": "_from"
+																												},
+																												"id": 99,
+																												"name": "Identifier",
+																												"src": "1506:5:2"
+																											}
+																										],
+																										"id": 102,
+																										"name": "IndexAccess",
+																										"src": "1498:14:2"
+																									},
+																									{
+																										"attributes": {
+																											"member_name": "sender",
+																											"type": "address"
+																										},
+																										"children": [
+																											{
+																												"attributes": {
+																													"type": "msg",
+																													"value": "msg"
+																												},
+																												"id": 100,
+																												"name": "Identifier",
+																												"src": "1513:3:2"
+																											}
+																										],
+																										"id": 101,
+																										"name": "MemberAccess",
+																										"src": "1513:10:2"
+																									}
+																								],
+																								"id": 103,
+																								"name": "IndexAccess",
+																								"src": "1498:26:2"
+																							},
+																							{
+																								"attributes": {
+																									"type": "uint256",
+																									"value": "_value"
+																								},
+																								"id": 104,
+																								"name": "Identifier",
+																								"src": "1528:6:2"
+																							}
+																						],
+																						"id": 105,
+																						"name": "Assignment",
+																						"src": "1498:36:2"
+																					}
+																				],
+																				"id": 106,
+																				"name": "ExpressionStatement",
+																				"src": "1498:36:2"
+																			}
+																		],
+																		"id": 107,
+																		"name": "Block",
+																		"src": "1480:69:2"
+																	}
+																],
+																"id": 108,
+																"name": "IfStatement",
+																"src": "1454:95:2"
+															},
+															{
+																"children": [
+																	{
+																		"attributes": {
+																			"type": "tuple()",
+																			"type_conversion": false
+																		},
+																		"children": [
+																			{
+																				"attributes": {
+																					"type": "function (address,address,uint256) constant",
+																					"value": "Transfer"
+																				},
+																				"id": 109,
+																				"name": "Identifier",
+																				"src": "1562:8:2"
+																			},
+																			{
+																				"attributes": {
+																					"type": "address",
+																					"value": "_from"
+																				},
+																				"id": 110,
+																				"name": "Identifier",
+																				"src": "1571:5:2"
+																			},
+																			{
+																				"attributes": {
+																					"type": "address",
+																					"value": "_to"
+																				},
+																				"id": 111,
+																				"name": "Identifier",
+																				"src": "1578:3:2"
+																			},
+																			{
+																				"attributes": {
+																					"type": "uint256",
+																					"value": "_value"
+																				},
+																				"id": 112,
+																				"name": "Identifier",
+																				"src": "1583:6:2"
+																			}
+																		],
+																		"id": 113,
+																		"name": "FunctionCall",
+																		"src": "1562:28:2"
+																	}
+																],
+																"id": 114,
+																"name": "ExpressionStatement",
+																"src": "1562:28:2"
+															},
+															{
+																"children": [
+																	{
+																		"attributes": {
+																			"hexvalue": "74727565",
+																			"subdenomination": null,
+																			"token": "true",
+																			"type": "bool",
+																			"value": "true"
+																		},
+																		"id": 115,
+																		"name": "Literal",
+																		"src": "1611:4:2"
+																	}
+																],
+																"id": 116,
+																"name": "Return",
+																"src": "1604:11:2"
+															}
+														],
+														"id": 117,
+														"name": "Block",
+														"src": "1364:262:2"
+													},
+													{
+														"children": [
+															{
+																"children": [
+																	{
+																		"attributes": {
+																			"hexvalue": "66616c7365",
+																			"subdenomination": null,
+																			"token": "false",
+																			"type": "bool",
+																			"value": "false"
+																		},
+																		"id": 118,
+																		"name": "Literal",
+																		"src": "1653:5:2"
+																	}
+																],
+																"id": 119,
+																"name": "Return",
+																"src": "1646:12:2"
+															}
+														],
+														"id": 120,
+														"name": "Block",
+														"src": "1632:37:2"
+													}
+												],
+												"id": 121,
+												"name": "IfStatement",
+												"src": "1234:435:2"
+											}
+										],
+										"id": 122,
+										"name": "Block",
+										"src": "1171:504:2"
+									}
+								],
+								"id": 123,
+								"name": "FunctionDefinition",
+								"src": "1066:609:2"
+							}
+						],
+						"id": 124,
+						"name": "ContractDefinition",
+						"src": "686:991:2"
+					}
+				],
+				"name": "SourceUnit"
+			}
+		},
+		"2.0.0/tokens/ZRXToken/ZRXToken.sol": {
+			"id": 3,
+			"legacyAST": {
+				"children": [
+					{
+						"attributes": {
+							"literals": [
+								"solidity",
+								"0.4",
+								".11"
+							]
+						},
+						"id": 1,
+						"name": "PragmaDirective",
+						"src": "580:23:3"
+					},
+					{
+						"attributes": {
+							"file": "../../../1.0.0/UnlimitedAllowanceToken/UnlimitedAllowanceToken_v1.sol"
+						},
+						"id": 3,
+						"name": "ImportDirective",
+						"src": "650:142:3"
+					},
+					{
+						"attributes": {
+							"fullyImplemented": true,
+							"isLibrary": false,
+							"linearizedBaseContracts": [
+								31,
+								124,
+								322,
+								397
+							],
+							"name": "ZRXToken"
+						},
+						"children": [
+							{
+								"children": [
+									{
+										"attributes": {
+											"name": "UnlimitedAllowanceToken"
+										},
+										"id": 4,
+										"name": "UserDefinedTypeName",
+										"src": "816:23:3"
+									}
+								],
+								"id": 5,
+								"name": "InheritanceSpecifier",
+								"src": "816:23:3"
+							},
+							{
+								"attributes": {
+									"constant": true,
+									"name": "decimals",
+									"storageLocation": "default",
+									"type": "uint8",
+									"visibility": "public"
+								},
+								"children": [
+									{
+										"attributes": {
+											"name": "uint8"
+										},
+										"id": 6,
+										"name": "ElementaryTypeName",
+										"src": "891:5:3"
+									},
+									{
+										"attributes": {
+											"hexvalue": "3138",
+											"subdenomination": null,
+											"token": null,
+											"type": "int_const 18",
+											"value": "18"
+										},
+										"id": 7,
+										"name": "Literal",
+										"src": "924:2:3"
+									}
+								],
+								"id": 8,
+								"name": "VariableDeclaration",
+								"src": "891:35:3"
+							},
+							{
+								"attributes": {
+									"constant": false,
+									"name": "totalSupply",
+									"storageLocation": "default",
+									"type": "uint256",
+									"visibility": "public"
+								},
+								"children": [
+									{
+										"attributes": {
+											"name": "uint"
+										},
+										"id": 9,
+										"name": "ElementaryTypeName",
+										"src": "932:4:3"
+									},
+									{
+										"attributes": {
+											"operator": "**",
+											"type": "int_const 1000000000000000000000000000"
+										},
+										"children": [
+											{
+												"attributes": {
+													"hexvalue": "3130",
+													"subdenomination": null,
+													"token": null,
+													"type": "int_const 10",
+													"value": "10"
+												},
+												"id": 10,
+												"name": "Literal",
+												"src": "958:2:3"
+											},
+											{
+												"attributes": {
+													"hexvalue": "3237",
+													"subdenomination": null,
+													"token": null,
+													"type": "int_const 27",
+													"value": "27"
+												},
+												"id": 11,
+												"name": "Literal",
+												"src": "962:2:3"
+											}
+										],
+										"id": 12,
+										"name": "BinaryOperation",
+										"src": "958:6:3"
+									}
+								],
+								"id": 13,
+								"name": "VariableDeclaration",
+								"src": "932:32:3"
+							},
+							{
+								"attributes": {
+									"constant": true,
+									"name": "name",
+									"storageLocation": "default",
+									"type": "string memory",
+									"visibility": "public"
+								},
+								"children": [
+									{
+										"attributes": {
+											"name": "string"
+										},
+										"id": 14,
+										"name": "ElementaryTypeName",
+										"src": "1009:6:3"
+									},
+									{
+										"attributes": {
+											"hexvalue": "30782050726f746f636f6c20546f6b656e",
+											"subdenomination": null,
+											"token": null,
+											"type": "literal_string \"0x Protocol Token\"",
+											"value": "0x Protocol Token"
+										},
+										"id": 15,
+										"name": "Literal",
+										"src": "1039:19:3"
+									}
+								],
+								"id": 16,
+								"name": "VariableDeclaration",
+								"src": "1009:49:3"
+							},
+							{
+								"attributes": {
+									"constant": true,
+									"name": "symbol",
+									"storageLocation": "default",
+									"type": "string memory",
+									"visibility": "public"
+								},
+								"children": [
+									{
+										"attributes": {
+											"name": "string"
+										},
+										"id": 17,
+										"name": "ElementaryTypeName",
+										"src": "1064:6:3"
+									},
+									{
+										"attributes": {
+											"hexvalue": "5a5258",
+											"subdenomination": null,
+											"token": null,
+											"type": "literal_string \"ZRX\"",
+											"value": "ZRX"
+										},
+										"id": 18,
+										"name": "Literal",
+										"src": "1096:5:3"
+									}
+								],
+								"id": 19,
+								"name": "VariableDeclaration",
+								"src": "1064:37:3"
+							},
+							{
+								"attributes": {
+									"constant": false,
+									"name": "ZRXToken",
+									"payable": false,
+									"visibility": "public"
+								},
+								"children": [
+									{
+										"children": [],
+										"id": 20,
+										"name": "ParameterList",
+										"src": "1167:2:3"
+									},
+									{
+										"children": [],
+										"id": 21,
+										"name": "ParameterList",
+										"src": "1189:0:3"
+									},
+									{
+										"children": [
+											{
+												"children": [
+													{
+														"attributes": {
+															"operator": "=",
+															"type": "uint256"
+														},
+														"children": [
+															{
+																"attributes": {
+																	"type": "uint256"
+																},
+																"children": [
+																	{
+																		"attributes": {
+																			"type": "mapping(address => uint256)",
+																			"value": "balances"
+																		},
+																		"id": 22,
+																		"name": "Identifier",
+																		"src": "1199:8:3"
+																	},
+																	{
+																		"attributes": {
+																			"member_name": "sender",
+																			"type": "address"
+																		},
+																		"children": [
+																			{
+																				"attributes": {
+																					"type": "msg",
+																					"value": "msg"
+																				},
+																				"id": 23,
+																				"name": "Identifier",
+																				"src": "1208:3:3"
+																			}
+																		],
+																		"id": 24,
+																		"name": "MemberAccess",
+																		"src": "1208:10:3"
+																	}
+																],
+																"id": 25,
+																"name": "IndexAccess",
+																"src": "1199:20:3"
+															},
+															{
+																"attributes": {
+																	"type": "uint256",
+																	"value": "totalSupply"
+																},
+																"id": 26,
+																"name": "Identifier",
+																"src": "1222:11:3"
+															}
+														],
+														"id": 27,
+														"name": "Assignment",
+														"src": "1199:34:3"
+													}
+												],
+												"id": 28,
+												"name": "ExpressionStatement",
+												"src": "1199:34:3"
+											}
+										],
+										"id": 29,
+										"name": "Block",
+										"src": "1189:51:3"
+									}
+								],
+								"id": 30,
+								"name": "FunctionDefinition",
+								"src": "1150:90:3"
+							}
+						],
+						"id": 31,
+						"name": "ContractDefinition",
+						"src": "795:447:3"
+					}
+				],
+				"name": "SourceUnit"
+			}
+		}
+	},
+	"sourceCodes": {
+		"1.0.0/ERC20Token/ERC20Token_v1.sol": "pragma solidity ^0.4.11;\n\nimport { Token_v1 as Token } from \"../Token/Token_v1.sol\";\n\ncontract ERC20Token_v1 is Token {\n\n    function transfer(address _to, uint _value) returns (bool) {\n        //Default assumes totalSupply can't be over max (2^256 - 1).\n        if (balances[msg.sender] >= _value && balances[_to] + _value >= balances[_to]) {\n            balances[msg.sender] -= _value;\n            balances[_to] += _value;\n            Transfer(msg.sender, _to, _value);\n            return true;\n        } else { return false; }\n    }\n\n    function transferFrom(address _from, address _to, uint _value) returns (bool) {\n        if (balances[_from] >= _value && allowed[_from][msg.sender] >= _value && balances[_to] + _value >= balances[_to]) {\n            balances[_to] += _value;\n            balances[_from] -= _value;\n            allowed[_from][msg.sender] -= _value;\n            Transfer(_from, _to, _value);\n            return true;\n        } else { return false; }\n    }\n\n    function balanceOf(address _owner) constant returns (uint) {\n        return balances[_owner];\n    }\n\n    function approve(address _spender, uint _value) returns (bool) {\n        allowed[msg.sender][_spender] = _value;\n        Approval(msg.sender, _spender, _value);\n        return true;\n    }\n\n    function allowance(address _owner, address _spender) constant returns (uint) {\n        return allowed[_owner][_spender];\n    }\n\n    mapping (address => uint) balances;\n    mapping (address => mapping (address => uint)) allowed;\n    uint public totalSupply;\n}\n",
+		"1.0.0/Token/Token_v1.sol": "pragma solidity ^0.4.11;\n\ncontract Token_v1 {\n\n    /// @return total amount of tokens\n    function totalSupply() constant returns (uint supply) {}\n\n    /// @param _owner The address from which the balance will be retrieved\n    /// @return The balance\n    function balanceOf(address _owner) constant returns (uint balance) {}\n\n    /// @notice send `_value` token to `_to` from `msg.sender`\n    /// @param _to The address of the recipient\n    /// @param _value The amount of token to be transferred\n    /// @return Whether the transfer was successful or not\n    function transfer(address _to, uint _value) returns (bool success) {}\n\n    /// @notice send `_value` token to `_to` from `_from` on the condition it is approved by `_from`\n    /// @param _from The address of the sender\n    /// @param _to The address of the recipient\n    /// @param _value The amount of token to be transferred\n    /// @return Whether the transfer was successful or not\n    function transferFrom(address _from, address _to, uint _value) returns (bool success) {}\n\n    /// @notice `msg.sender` approves `_addr` to spend `_value` tokens\n    /// @param _spender The address of the account able to transfer the tokens\n    /// @param _value The amount of wei to be approved for transfer\n    /// @return Whether the approval was successful or not\n    function approve(address _spender, uint _value) returns (bool success) {}\n\n    /// @param _owner The address of the account owning tokens\n    /// @param _spender The address of the account able to transfer the tokens\n    /// @return Amount of remaining tokens allowed to spent\n    function allowance(address _owner, address _spender) constant returns (uint remaining) {}\n\n    event Transfer(address indexed _from, address indexed _to, uint _value);\n    event Approval(address indexed _owner, address indexed _spender, uint _value);\n}\n\n",
+		"1.0.0/UnlimitedAllowanceToken/UnlimitedAllowanceToken_v1.sol": "/*\n\n  Copyright 2018 ZeroEx Intl.\n\n  Licensed under the Apache License, Version 2.0 (the \"License\");\n  you may not use this file except in compliance with the License.\n  You may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\n  Unless required by applicable law or agreed to in writing, software\n  distributed under the License is distributed on an \"AS IS\" BASIS,\n  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n  See the License for the specific language governing permissions and\n  limitations under the License.\n\n*/\n\npragma solidity ^0.4.11;\n\nimport { ERC20Token_v1 as ERC20Token } from \"../ERC20Token/ERC20Token_v1.sol\";\n\ncontract UnlimitedAllowanceToken_v1 is ERC20Token {\n\n    uint constant MAX_UINT = 2**256 - 1;\n\n    /// @dev ERC20 transferFrom, modified such that an allowance of MAX_UINT represents an unlimited allowance.\n    /// @param _from Address to transfer from.\n    /// @param _to Address to transfer to.\n    /// @param _value Amount to transfer.\n    /// @return Success of transfer.\n    function transferFrom(address _from, address _to, uint _value)\n        public\n        returns (bool)\n    {\n        uint allowance = allowed[_from][msg.sender];\n        if (balances[_from] >= _value\n            && allowance >= _value\n            && balances[_to] + _value >= balances[_to]\n        ) {\n            balances[_to] += _value;\n            balances[_from] -= _value;\n            if (allowance < MAX_UINT) {\n                allowed[_from][msg.sender] -= _value;\n            }\n            Transfer(_from, _to, _value);\n            return true;\n        } else {\n            return false;\n        }\n    }\n}\n",
+		"2.0.0/tokens/ZRXToken/ZRXToken.sol": "/*\n\n  Copyright 2018 ZeroEx Intl.\n\n  Licensed under the Apache License, Version 2.0 (the \"License\");\n  you may not use this file except in compliance with the License.\n  You may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\n  Unless required by applicable law or agreed to in writing, software\n  distributed under the License is distributed on an \"AS IS\" BASIS,\n  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n  See the License for the specific language governing permissions and\n  limitations under the License.\n\n*/\n\npragma solidity 0.4.11;\n\n// solhint-disable-next-line max-line-length\nimport { UnlimitedAllowanceToken_v1 as UnlimitedAllowanceToken } from \"../../../1.0.0/UnlimitedAllowanceToken/UnlimitedAllowanceToken_v1.sol\";\n\n\ncontract ZRXToken is UnlimitedAllowanceToken {\n\n    // solhint-disable const-name-snakecase\n    uint8 constant public decimals = 18;\n    uint public totalSupply = 10**27; // 1 billion tokens, 18 decimal places\n    string constant public name = \"0x Protocol Token\";\n    string constant public symbol = \"ZRX\";\n    // solhint-enableconst-name-snakecase\n\n    function ZRXToken()\n        public\n    {\n        balances[msg.sender] = totalSupply;\n    }\n}\n"
+	},
+	"sourceTreeHashHex": "0xbcce67d129fe53ddb9717b4f567b33108c41a4f4324aa47ac609037e41f5b95d",
+	"compiler": {
+		"name": "solc",
+		"version": "soljson-v0.4.11+commit.68ef5810.js",
+		"settings": {
+			"optimizer": {
+				"enabled": true,
+				"runs": 1000000
+			},
+			"outputSelection": {
+				"*": {
+					"*": [
+						"abi",
+						"evm.bytecode.object",
+						"evm.bytecode.sourceMap",
+						"evm.deployedBytecode.object",
+						"evm.deployedBytecode.sourceMap"
+					]
+				}
+			}
+		}
+	},
+	"networks": {
+		"50": {
+			"address": "0x871dd7c2b4b25e1aa18728e9d5f2af4c4e431f5c",
+			"links": {},
+			"constructorArgs": "[]"
+		}
+	}
+}
\ No newline at end of file
diff --git a/yarn.lock b/yarn.lock
index f2eba5d47..d43d8bd22 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -3731,7 +3731,7 @@ detect-libc@^1.0.2, detect-libc@^1.0.3:
   version "1.0.3"
   resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b"
 
-detect-node@^2.0.3:
+detect-node@2.0.3, detect-node@^2.0.3:
   version "2.0.3"
   resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.0.3.tgz#a2033c09cc8e158d37748fbde7507832bd6ce127"
 
-- 
cgit v1.2.3


From 2f41ed50c198b2952b1af50de55df2f19d645033 Mon Sep 17 00:00:00 2001
From: Fabio Berger <me@fabioberger.com>
Date: Fri, 13 Jul 2018 16:47:32 +0200
Subject: Switch conditional

---
 packages/utils/src/fetchAsync.ts | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/packages/utils/src/fetchAsync.ts b/packages/utils/src/fetchAsync.ts
index 47d87815e..8295ff5ec 100644
--- a/packages/utils/src/fetchAsync.ts
+++ b/packages/utils/src/fetchAsync.ts
@@ -7,7 +7,7 @@ export const fetchAsync = async (
     timeoutMs: number = 20000,
 ): Promise<Response> => {
     let optionsWithAbortParam;
-    if (isNode) {
+    if (!isNode) {
         const controller = new AbortController();
         const signal = controller.signal;
         setTimeout(() => {
-- 
cgit v1.2.3


From efc64cf17fe01a5dbed817be31f7d8c7f9cd078a Mon Sep 17 00:00:00 2001
From: Fabio Berger <me@fabioberger.com>
Date: Fri, 13 Jul 2018 17:17:45 +0200
Subject: Remove unused import

---
 packages/abi-gen/test/utils_test.ts | 1 -
 1 file changed, 1 deletion(-)

diff --git a/packages/abi-gen/test/utils_test.ts b/packages/abi-gen/test/utils_test.ts
index f3dd38035..820c0c675 100644
--- a/packages/abi-gen/test/utils_test.ts
+++ b/packages/abi-gen/test/utils_test.ts
@@ -2,7 +2,6 @@ import * as chai from 'chai';
 import * as dirtyChai from 'dirty-chai';
 import * as fs from 'fs';
 import 'mocha';
-import * as sleep from 'sleep';
 import * as tmp from 'tmp';
 
 import { utils } from '../src/utils';
-- 
cgit v1.2.3


From de1029d5ef7f069a2215557e901f3230f6da98fa Mon Sep 17 00:00:00 2001
From: Fabio Berger <me@fabioberger.com>
Date: Fri, 13 Jul 2018 18:51:21 +0200
Subject: Fix linter issues

---
 packages/website/ts/blockchain.ts | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/packages/website/ts/blockchain.ts b/packages/website/ts/blockchain.ts
index 099171c45..805b48856 100644
--- a/packages/website/ts/blockchain.ts
+++ b/packages/website/ts/blockchain.ts
@@ -17,7 +17,6 @@ import {
     RedundantSubprovider,
     RPCSubprovider,
     SignerSubprovider,
-    Subprovider,
     Web3ProviderEngine,
 } from '@0xproject/subproviders';
 import {
@@ -159,7 +158,7 @@ export class Blockchain {
             const rpcSubproviders = _.map(configs.PUBLIC_NODE_URLS_BY_NETWORK_ID[networkIdIfExists], publicNodeUrl => {
                 return new RPCSubprovider(publicNodeUrl);
             });
-            provider.addProvider(new RedundantSubprovider(rpcSubproviders as Subprovider[]));
+            provider.addProvider(new RedundantSubprovider(rpcSubproviders));
             provider.start();
             return [provider, ledgerSubprovider];
         } else if (doesInjectedWeb3Exist && isPublicNodeAvailableForNetworkId) {
@@ -171,7 +170,7 @@ export class Blockchain {
             const rpcSubproviders = _.map(publicNodeUrlsIfExistsForNetworkId, publicNodeUrl => {
                 return new RPCSubprovider(publicNodeUrl);
             });
-            provider.addProvider(new RedundantSubprovider(rpcSubproviders as Subprovider[]));
+            provider.addProvider(new RedundantSubprovider(rpcSubproviders));
             provider.start();
             return [provider, undefined];
         } else if (doesInjectedWeb3Exist) {
@@ -187,7 +186,7 @@ export class Blockchain {
             const rpcSubproviders = _.map(configs.PUBLIC_NODE_URLS_BY_NETWORK_ID[networkId], publicNodeUrl => {
                 return new RPCSubprovider(publicNodeUrl);
             });
-            provider.addProvider(new RedundantSubprovider(rpcSubproviders as Subprovider[]));
+            provider.addProvider(new RedundantSubprovider(rpcSubproviders));
             provider.start();
             return [provider, undefined];
         }
-- 
cgit v1.2.3


From 80071beaacd4303bd5c7edb699d202861fd98b50 Mon Sep 17 00:00:00 2001
From: Fabio Berger <me@fabioberger.com>
Date: Fri, 13 Jul 2018 19:38:35 +0200
Subject: Add assertion to make sure caller to fetchAsync isn't trying to set
 timeout in a context-specific way

---
 packages/utils/src/fetchAsync.ts | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/packages/utils/src/fetchAsync.ts b/packages/utils/src/fetchAsync.ts
index 8295ff5ec..6ae2ba1a4 100644
--- a/packages/utils/src/fetchAsync.ts
+++ b/packages/utils/src/fetchAsync.ts
@@ -6,6 +6,9 @@ export const fetchAsync = async (
     options: RequestInit = {},
     timeoutMs: number = 20000,
 ): Promise<Response> => {
+    if (options.signal || (options as any).timeout) {
+        throw new Error('Cannot call fetchAsync with options.signal or options.timeout. To set a timeout, please use the supplied "timeoutMs" parameter.');
+    }
     let optionsWithAbortParam;
     if (!isNode) {
         const controller = new AbortController();
-- 
cgit v1.2.3


From 2f0a9148387b66d75b9ee3856e68f0ed3aa149de Mon Sep 17 00:00:00 2001
From: Fabio Berger <me@fabioberger.com>
Date: Fri, 13 Jul 2018 19:53:49 +0200
Subject: Fix linter

---
 packages/utils/src/fetchAsync.ts | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/packages/utils/src/fetchAsync.ts b/packages/utils/src/fetchAsync.ts
index 6ae2ba1a4..c02e5baba 100644
--- a/packages/utils/src/fetchAsync.ts
+++ b/packages/utils/src/fetchAsync.ts
@@ -7,7 +7,9 @@ export const fetchAsync = async (
     timeoutMs: number = 20000,
 ): Promise<Response> => {
     if (options.signal || (options as any).timeout) {
-        throw new Error('Cannot call fetchAsync with options.signal or options.timeout. To set a timeout, please use the supplied "timeoutMs" parameter.');
+        throw new Error(
+            'Cannot call fetchAsync with options.signal or options.timeout. To set a timeout, please use the supplied "timeoutMs" parameter.',
+        );
     }
     let optionsWithAbortParam;
     if (!isNode) {
-- 
cgit v1.2.3