diff --git a/dapp-oeth/.vscode/launch.json b/dapp-oeth/.vscode/launch.json
new file mode 100644
index 0000000000..c3dbb85155
--- /dev/null
+++ b/dapp-oeth/.vscode/launch.json
@@ -0,0 +1,28 @@
+{
+ "version": "0.2.0",
+ "configurations": [
+ {
+ "name": "Next.js: debug server-side",
+ "type": "node-terminal",
+ "request": "launch",
+ "command": "yarn dev"
+ },
+ {
+ "name": "Next.js: debug client-side",
+ "type": "chrome",
+ "request": "launch",
+ "url": "http://localhost:3000"
+ },
+ {
+ "name": "Next.js: debug full stack",
+ "type": "node-terminal",
+ "request": "launch",
+ "command": "PORT=3001 yarn dev",
+ "serverReadyAction": {
+ "pattern": "started server on .+, url: (https?://.+)",
+ "uriFormat": "%s",
+ "action": "debugWithChrome"
+ }
+ }
+ ]
+}
diff --git a/dapp-oeth/pages/history.js b/dapp-oeth/pages/history.js
index 0f1df9100b..3f978f9135 100644
--- a/dapp-oeth/pages/history.js
+++ b/dapp-oeth/pages/history.js
@@ -6,8 +6,6 @@ import Layout from 'components/layout'
import Nav from 'components/Nav'
import BalanceHeader from 'components/buySell/BalanceHeader'
import TransactionHistory from 'components/TransactionHistory'
-import GetOUSD from 'components/GetOUSD'
-import { assetRootPath } from 'utils/image'
import { useOverrideAccount } from '../src/utils/hooks'
import ErrorModal from '../src/components/buySell/ErrorModal'
@@ -39,38 +37,14 @@ export default function History({ locale, onLocale }) {
}}
/>
)}
+
-
- {(overrideAccount || active) &&
}
- {!overrideAccount && !active && (
-
-
})
-
- {fbt('No wallet connected', 'Disconnected dapp message')}
-
-
- {fbt(
- 'Please connect an Ethereum wallet',
- 'Disconnected dapp subtext'
- )}
-
-
-
- )}
+
)
@@ -287,6 +278,76 @@ const TransactionHistory = ({ isMobile }) => {
}
}, [historyQuery.isLoading, historyQuery.isRefetching])
+ const Filters = () => {
+ return (
+
+
+
+
+
+
+ )
+ }
+
+ const EmptyPlaceholder = ({ children }) => {
+ return (
+ <>
+
+ {children}
+
+
+ >
+ )
+ }
+
return (
<>
@@ -295,45 +356,17 @@ const TransactionHistory = ({ isMobile }) => {
) : (
<>
-
-
-
-
-
+
History
+
+
{
- historyQuery.refetch()
+ !overrideAccount && !active ? null : historyQuery.refetch()
}}
>
{historyQuery.isLoading || historyQuery.isRefetching
@@ -342,60 +375,69 @@ const TransactionHistory = ({ isMobile }) => {
+
+
+
-
-
- {fbt('Date', 'Transaction history date')}
-
-
- {fbt('Type', 'Transaction history type')}
-
- {/*
+ {(overrideAccount || active) && (
+ <>
+
+
+ {fbt('Date', 'Transaction history date')}
+
+
+ Date/Type
+
+
+ {fbt('Type', 'Transaction history type')}
+
+ {/*
{fbt('From', 'Transaction history from account')}
{fbt('To', 'Transaction history to account')}
*/}
-
- {fbt('Change', 'Transaction history OETH amount')}
-
-
- {fbt('OETH Balance', 'Transaction history OETH balance')}
-
-
- {currentPageHistory
- .flatMap((r) => Array.from({ length: 7 }).fill(r))
- .map((tx) => {
- return (
-
-
- {dateformat(
- Date.parse(tx.time),
- isMobile ? 'mm/dd/yy' : 'mm/dd/yyyy'
- ) || ''}
-
+
+ {fbt('Change', 'Transaction history OETH amount')}
+
+
+ {fbt('OETH Balance', 'Transaction history OETH balance')}
+
+
+ {currentPageHistory.map((tx) => {
+ return (
- {txTypeMap[tx.type].name}
-
- {/*
+ {dateformat(
+ Date.parse(tx.time),
+ isMobile ? 'mm/dd/yy' : 'mm/dd/yyyy'
+ ) || ''}
+
+ {txTypeMap[tx.type].name}
+
+
+
+ {txTypeMap[tx.type].name}
+
+ {/*
{
>
{tx.to_address ? shortenAddress(tx.to_address) : '-'}
*/}
-
- {tx.amount ? (
-
- ) : (
- '-'
- )}
-
-
- {tx.balance ? (
-
- ) : (
- '-'
- )}
-
+
+ {tx.balance ? (
+
-
+ ) : (
+ '-'
+ )}
+
-
- )
- })}
+ )
+ })}
+ >
+ )}
+ {!overrideAccount && !active && (
+
+
+ Connect your wallet to see your history
+
+
+
+ )}
-
- {pageNumbers.map((pageNumber, index) => {
- const isCurrent =
- pageNumber === historyPageQuery.data.page.current //currentPage
- const skippedAPage =
- index > 0 && pageNumber - pageNumbers[index - 1] !== 1
-
- return (
-
- {skippedAPage && (
-
- ...
+ {overrideAccount ||
+ (active && (
+
+ {pageNumbers.map((pageNumber, index) => {
+ const isCurrent =
+ pageNumber === historyPageQuery.data.page.current //currentPage
+ const skippedAPage =
+ index > 0 && pageNumber - pageNumbers[index - 1] !== 1
+
+ return (
+
+ {skippedAPage && (
+
+ ...
+
+ )}
+
{
+ if (isCurrent) {
+ return
+ }
+ setCurrentPage(pageNumber)
+ }}
+ >
+ {pageNumber}
+
- )}
-
{
- if (isCurrent) {
- return
- }
- setCurrentPage(pageNumber)
- }}
- >
- {pageNumber}
-
-
- )
- })}
-
+ )
+ })}
+
+ ))}
>
)}
>
diff --git a/dapp-oeth/src/utils/math.js b/dapp-oeth/src/utils/math.js
index 439532b90a..177cd0b3cc 100644
--- a/dapp-oeth/src/utils/math.js
+++ b/dapp-oeth/src/utils/math.js
@@ -104,7 +104,12 @@ export function truncateDecimals(value, decimals = 6) {
return '0.'
}
- const [whole, fraction] = value.toString().split('.')
+ const [whole, fraction] = value
+ .toLocaleString(undefined, {
+ useGrouping: false,
+ maximumFractionDigits: 20,
+ })
+ .split('.')
if (!fraction || fraction.length <= decimals) {
// No change
diff --git a/dapp/abis/Flipper.json b/dapp/abis/Flipper.json
index 7d064d83af..ae3a548c9d 100644
--- a/dapp/abis/Flipper.json
+++ b/dapp/abis/Flipper.json
@@ -224,8 +224,8 @@
"type": "function"
}
],
- "bytecode": "0x6101006040523480156200001257600080fd5b50604051620018ba380380620018ba833981016040819052620000359162000132565b6200004d336000805160206200189a83398151915255565b6000805160206200189a833981519152546040516001600160a01b03909116906000907fc7c0c772add429241571afb3805861fb3cfa2af374534088b76cdb4325a87e9a908290a36001600160a01b038416620000a957600080fd5b6001600160a01b038316620000bd57600080fd5b6001600160a01b038216620000d157600080fd5b6001600160a01b038116620000e557600080fd5b6001600160601b0319606094851b811660805292841b831660a05290831b821660c05290911b1660e0526200018f565b80516001600160a01b03811681146200012d57600080fd5b919050565b600080600080608085870312156200014957600080fd5b620001548562000115565b9350620001646020860162000115565b9250620001746040860162000115565b9150620001846060860162000115565b905092959194509250565b60805160601c60a05160601c60c05160601c60e05160601c61165c6200023e6000396000818161021d015281816107ed0152818161087b0152610d920152600081816108d00152818161095c01528181610b1a0152610c370152600081816102bd015281816104b40152818161070c0152818161079801528181610aad01528181610e3a01526110260152600081816103cb0152818161062b015281816106b701526109d0015261165c6000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c8063bfc11ffd1161008c578063cb93905311610066578063cb93905314610182578063d38bfff414610195578063f3fef3a3146101a8578063f51b0fd4146101bb57600080fd5b8063bfc11ffd14610144578063c6b6816914610157578063c7af33521461016a57600080fd5b80630c340a24146100d457806335aa0b96146100f95780635981c7461461010e5780635d36b19014610121578063853828b6146101295780638a095a0f14610131575b600080fd5b6100dc6101c3565b6040516001600160a01b0390911681526020015b60405180910390f35b61010c610107366004611486565b6101e0565b005b61010c61011c366004611486565b61038a565b61010c6104eb565b61010c610591565b61010c61013f366004611486565b61098a565b61010c610152366004611486565b610ae6565b61010c610165366004611486565b610c03565b610172610d2d565b60405190151581526020016100f0565b61010c610190366004611486565b610d5e565b61010c6101a336600461141f565b610e75565b61010c6101b636600461143a565b610f19565b61010c610fb8565b60006101db6000805160206116078339815191525490565b905090565b69054b40b1f852bda000008111156102135760405162461bcd60e51b815260040161020a90611562565b60405180910390fd5b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166323b872dd333061025364e8d4a51000866115b4565b6040518463ffffffff1660e01b8152600401610271939291906114d4565b600060405180830381600087803b15801561028b57600080fd5b505af115801561029f573d6000803e3d6000fd5b505060405163a9059cbb60e01b8152336004820152602481018490527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316925063a9059cbb91506044015b602060405180830381600087803b15801561030c57600080fd5b505af1158015610320573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103449190611464565b6103875760405162461bcd60e51b815260206004820152601460248201527313d554d1081d1c985b9cd9995c8819985a5b195960621b604482015260640161020a565b50565b69054b40b1f852bda000008111156103b45760405162461bcd60e51b815260040161020a90611562565b6040516323b872dd60e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906323b872dd90610404903390309086906004016114d4565b602060405180830381600087803b15801561041e57600080fd5b505af1158015610432573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104569190611464565b6104985760405162461bcd60e51b8152602060048201526013602482015272111052481d1c985b9cd9995c8819985a5b1959606a1b604482015260640161020a565b60405163a9059cbb60e01b8152336004820152602481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063a9059cbb906044016102f2565b7f44c4d30b2eaad5130ad70c3ba6972730566f3e6359ab83e800d905c61b1c51db546001600160a01b0316336001600160a01b0316146105865760405162461bcd60e51b815260206004820152603060248201527f4f6e6c79207468652070656e64696e6720476f7665726e6f722063616e20636f60448201526f6d706c6574652074686520636c61696d60801b606482015260840161020a565b61058f3361109f565b565b610599610d2d565b6105b55760405162461bcd60e51b815260040161020a9061152b565b7f53bf423e48ed90e97d02ab0ebab13b2a235a6bfbe9c321847d5c175333ac4535805460028114156105f95760405162461bcd60e51b815260040161020a9061158c565b600282556106de6106166000805160206116078339815191525490565b6040516370a0823160e01b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a082319060240160206040518083038186803b15801561067557600080fd5b505afa158015610689573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106ad919061149f565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169190611160565b6107bf6106f76000805160206116078339815191525490565b6040516370a0823160e01b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a082319060240160206040518083038186803b15801561075657600080fd5b505afa15801561076a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061078e919061149f565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169190611160565b6108a26107d86000805160206116078339815191525490565b6040516370a0823160e01b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381600087803b15801561083957600080fd5b505af115801561084d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610871919061149f565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169190611160565b6109836108bb6000805160206116078339815191525490565b6040516370a0823160e01b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a082319060240160206040518083038186803b15801561091a57600080fd5b505afa15801561092e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610952919061149f565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169190611160565b5060019055565b69054b40b1f852bda000008111156109b45760405162461bcd60e51b815260040161020a90611562565b60405163a9059cbb60e01b8152336004820152602481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063a9059cbb90604401602060405180830381600087803b158015610a1c57600080fd5b505af1158015610a30573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a549190611464565b610a965760405162461bcd60e51b8152602060048201526013602482015272111052481d1c985b9cd9995c8819985a5b1959606a1b604482015260640161020a565b6040516323b872dd60e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906323b872dd906102f2903390309086906004016114d4565b69054b40b1f852bda00000811115610b105760405162461bcd60e51b815260040161020a90611562565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166323b872dd3330610b5064e8d4a51000866115b4565b6040518463ffffffff1660e01b8152600401610b6e939291906114d4565b602060405180830381600087803b158015610b8857600080fd5b505af1158015610b9c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bc09190611464565b6104985760405162461bcd60e51b81526020600482015260146024820152731554d110c81d1c985b9cd9995c8819985a5b195960621b604482015260640161020a565b69054b40b1f852bda00000811115610c2d5760405162461bcd60e51b815260040161020a90611562565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663a9059cbb33610c6c64e8d4a51000856115b4565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401602060405180830381600087803b158015610cb257600080fd5b505af1158015610cc6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cea9190611464565b610a965760405162461bcd60e51b81526020600482015260146024820152731554d110c81d1c985b9cd9995c8819985a5b195960621b604482015260640161020a565b6000610d456000805160206116078339815191525490565b6001600160a01b0316336001600160a01b031614905090565b69054b40b1f852bda00000811115610d885760405162461bcd60e51b815260040161020a90611562565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663a9059cbb33610dc764e8d4a51000856115b4565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b158015610e0d57600080fd5b505af1158015610e21573d6000803e3d6000fd5b50506040516323b872dd60e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001692506323b872dd91506102f2903390309086906004016114d4565b610e7d610d2d565b610e995760405162461bcd60e51b815260040161020a9061152b565b610ec1817f44c4d30b2eaad5130ad70c3ba6972730566f3e6359ab83e800d905c61b1c51db55565b806001600160a01b0316610ee16000805160206116078339815191525490565b6001600160a01b03167fa39cc5eb22d0f34d8beaefee8a3f17cc229c1a1d1ef87a5ad47313487b1c4f0d60405160405180910390a350565b610f21610d2d565b610f3d5760405162461bcd60e51b815260040161020a9061152b565b7f53bf423e48ed90e97d02ab0ebab13b2a235a6bfbe9c321847d5c175333ac453580546002811415610f815760405162461bcd60e51b815260040161020a9061158c565b60028255610faf610f9e6000805160206116078339815191525490565b6001600160a01b0386169085611160565b50600190555050565b610fc0610d2d565b610fdc5760405162461bcd60e51b815260040161020a9061152b565b7f53bf423e48ed90e97d02ab0ebab13b2a235a6bfbe9c321847d5c175333ac4535805460028114156110205760405162461bcd60e51b815260040161020a9061158c565b600282557f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f51b0fd46040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561107f57600080fd5b505af1158015611093573d6000803e3d6000fd5b50505050600182555050565b6001600160a01b0381166110f55760405162461bcd60e51b815260206004820152601a60248201527f4e657720476f7665726e6f722069732061646472657373283029000000000000604482015260640161020a565b806001600160a01b03166111156000805160206116078339815191525490565b6001600160a01b03167fc7c0c772add429241571afb3805861fb3cfa2af374534088b76cdb4325a87e9a60405160405180910390a36103878160008051602061160783398151915255565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b1790526111b29084906111b7565b505050565b600061120c826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166112899092919063ffffffff16565b8051909150156111b2578080602001905181019061122a9190611464565b6111b25760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b606482015260840161020a565b606061129884846000856112a2565b90505b9392505050565b6060824710156113035760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b606482015260840161020a565b843b6113515760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161020a565b600080866001600160a01b0316858760405161136d91906114b8565b60006040518083038185875af1925050503d80600081146113aa576040519150601f19603f3d011682016040523d82523d6000602084013e6113af565b606091505b50915091506113bf8282866113ca565b979650505050505050565b606083156113d957508161129b565b8251156113e95782518084602001fd5b8160405162461bcd60e51b815260040161020a91906114f8565b80356001600160a01b038116811461141a57600080fd5b919050565b60006020828403121561143157600080fd5b61129b82611403565b6000806040838503121561144d57600080fd5b61145683611403565b946020939093013593505050565b60006020828403121561147657600080fd5b8151801515811461129b57600080fd5b60006020828403121561149857600080fd5b5035919050565b6000602082840312156114b157600080fd5b5051919050565b600082516114ca8184602087016115d6565b9190910192915050565b6001600160a01b039384168152919092166020820152604081019190915260600190565b60208152600082518060208401526115178160408501602087016115d6565b601f01601f19169190910160400192915050565b6020808252601a908201527f43616c6c6572206973206e6f742074686520476f7665726e6f72000000000000604082015260600190565b60208082526010908201526f416d6f756e7420746f6f206c6172676560801b604082015260600190565b6020808252600e908201526d1499595b9d1c985b9d0818d85b1b60921b604082015260600190565b6000826115d157634e487b7160e01b600052601260045260246000fd5b500490565b60005b838110156115f15781810151838201526020016115d9565b83811115611600576000848401525b5050505056fe7bea13895fa79d2831e0a9e28edede30099005a50d652d8957cf8a607ee6ca4aa2646970667358221220de5427febdef50e4707714b2e0dfb29a3f79546b9c8b263b0745d60c503c00ee64736f6c634300080700337bea13895fa79d2831e0a9e28edede30099005a50d652d8957cf8a607ee6ca4a",
- "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100cf5760003560e01c8063bfc11ffd1161008c578063cb93905311610066578063cb93905314610182578063d38bfff414610195578063f3fef3a3146101a8578063f51b0fd4146101bb57600080fd5b8063bfc11ffd14610144578063c6b6816914610157578063c7af33521461016a57600080fd5b80630c340a24146100d457806335aa0b96146100f95780635981c7461461010e5780635d36b19014610121578063853828b6146101295780638a095a0f14610131575b600080fd5b6100dc6101c3565b6040516001600160a01b0390911681526020015b60405180910390f35b61010c610107366004611486565b6101e0565b005b61010c61011c366004611486565b61038a565b61010c6104eb565b61010c610591565b61010c61013f366004611486565b61098a565b61010c610152366004611486565b610ae6565b61010c610165366004611486565b610c03565b610172610d2d565b60405190151581526020016100f0565b61010c610190366004611486565b610d5e565b61010c6101a336600461141f565b610e75565b61010c6101b636600461143a565b610f19565b61010c610fb8565b60006101db6000805160206116078339815191525490565b905090565b69054b40b1f852bda000008111156102135760405162461bcd60e51b815260040161020a90611562565b60405180910390fd5b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166323b872dd333061025364e8d4a51000866115b4565b6040518463ffffffff1660e01b8152600401610271939291906114d4565b600060405180830381600087803b15801561028b57600080fd5b505af115801561029f573d6000803e3d6000fd5b505060405163a9059cbb60e01b8152336004820152602481018490527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316925063a9059cbb91506044015b602060405180830381600087803b15801561030c57600080fd5b505af1158015610320573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103449190611464565b6103875760405162461bcd60e51b815260206004820152601460248201527313d554d1081d1c985b9cd9995c8819985a5b195960621b604482015260640161020a565b50565b69054b40b1f852bda000008111156103b45760405162461bcd60e51b815260040161020a90611562565b6040516323b872dd60e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906323b872dd90610404903390309086906004016114d4565b602060405180830381600087803b15801561041e57600080fd5b505af1158015610432573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104569190611464565b6104985760405162461bcd60e51b8152602060048201526013602482015272111052481d1c985b9cd9995c8819985a5b1959606a1b604482015260640161020a565b60405163a9059cbb60e01b8152336004820152602481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063a9059cbb906044016102f2565b7f44c4d30b2eaad5130ad70c3ba6972730566f3e6359ab83e800d905c61b1c51db546001600160a01b0316336001600160a01b0316146105865760405162461bcd60e51b815260206004820152603060248201527f4f6e6c79207468652070656e64696e6720476f7665726e6f722063616e20636f60448201526f6d706c6574652074686520636c61696d60801b606482015260840161020a565b61058f3361109f565b565b610599610d2d565b6105b55760405162461bcd60e51b815260040161020a9061152b565b7f53bf423e48ed90e97d02ab0ebab13b2a235a6bfbe9c321847d5c175333ac4535805460028114156105f95760405162461bcd60e51b815260040161020a9061158c565b600282556106de6106166000805160206116078339815191525490565b6040516370a0823160e01b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a082319060240160206040518083038186803b15801561067557600080fd5b505afa158015610689573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106ad919061149f565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169190611160565b6107bf6106f76000805160206116078339815191525490565b6040516370a0823160e01b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a082319060240160206040518083038186803b15801561075657600080fd5b505afa15801561076a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061078e919061149f565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169190611160565b6108a26107d86000805160206116078339815191525490565b6040516370a0823160e01b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381600087803b15801561083957600080fd5b505af115801561084d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610871919061149f565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169190611160565b6109836108bb6000805160206116078339815191525490565b6040516370a0823160e01b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a082319060240160206040518083038186803b15801561091a57600080fd5b505afa15801561092e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610952919061149f565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169190611160565b5060019055565b69054b40b1f852bda000008111156109b45760405162461bcd60e51b815260040161020a90611562565b60405163a9059cbb60e01b8152336004820152602481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063a9059cbb90604401602060405180830381600087803b158015610a1c57600080fd5b505af1158015610a30573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a549190611464565b610a965760405162461bcd60e51b8152602060048201526013602482015272111052481d1c985b9cd9995c8819985a5b1959606a1b604482015260640161020a565b6040516323b872dd60e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906323b872dd906102f2903390309086906004016114d4565b69054b40b1f852bda00000811115610b105760405162461bcd60e51b815260040161020a90611562565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166323b872dd3330610b5064e8d4a51000866115b4565b6040518463ffffffff1660e01b8152600401610b6e939291906114d4565b602060405180830381600087803b158015610b8857600080fd5b505af1158015610b9c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bc09190611464565b6104985760405162461bcd60e51b81526020600482015260146024820152731554d110c81d1c985b9cd9995c8819985a5b195960621b604482015260640161020a565b69054b40b1f852bda00000811115610c2d5760405162461bcd60e51b815260040161020a90611562565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663a9059cbb33610c6c64e8d4a51000856115b4565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401602060405180830381600087803b158015610cb257600080fd5b505af1158015610cc6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cea9190611464565b610a965760405162461bcd60e51b81526020600482015260146024820152731554d110c81d1c985b9cd9995c8819985a5b195960621b604482015260640161020a565b6000610d456000805160206116078339815191525490565b6001600160a01b0316336001600160a01b031614905090565b69054b40b1f852bda00000811115610d885760405162461bcd60e51b815260040161020a90611562565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663a9059cbb33610dc764e8d4a51000856115b4565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b158015610e0d57600080fd5b505af1158015610e21573d6000803e3d6000fd5b50506040516323b872dd60e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001692506323b872dd91506102f2903390309086906004016114d4565b610e7d610d2d565b610e995760405162461bcd60e51b815260040161020a9061152b565b610ec1817f44c4d30b2eaad5130ad70c3ba6972730566f3e6359ab83e800d905c61b1c51db55565b806001600160a01b0316610ee16000805160206116078339815191525490565b6001600160a01b03167fa39cc5eb22d0f34d8beaefee8a3f17cc229c1a1d1ef87a5ad47313487b1c4f0d60405160405180910390a350565b610f21610d2d565b610f3d5760405162461bcd60e51b815260040161020a9061152b565b7f53bf423e48ed90e97d02ab0ebab13b2a235a6bfbe9c321847d5c175333ac453580546002811415610f815760405162461bcd60e51b815260040161020a9061158c565b60028255610faf610f9e6000805160206116078339815191525490565b6001600160a01b0386169085611160565b50600190555050565b610fc0610d2d565b610fdc5760405162461bcd60e51b815260040161020a9061152b565b7f53bf423e48ed90e97d02ab0ebab13b2a235a6bfbe9c321847d5c175333ac4535805460028114156110205760405162461bcd60e51b815260040161020a9061158c565b600282557f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f51b0fd46040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561107f57600080fd5b505af1158015611093573d6000803e3d6000fd5b50505050600182555050565b6001600160a01b0381166110f55760405162461bcd60e51b815260206004820152601a60248201527f4e657720476f7665726e6f722069732061646472657373283029000000000000604482015260640161020a565b806001600160a01b03166111156000805160206116078339815191525490565b6001600160a01b03167fc7c0c772add429241571afb3805861fb3cfa2af374534088b76cdb4325a87e9a60405160405180910390a36103878160008051602061160783398151915255565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b1790526111b29084906111b7565b505050565b600061120c826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166112899092919063ffffffff16565b8051909150156111b2578080602001905181019061122a9190611464565b6111b25760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b606482015260840161020a565b606061129884846000856112a2565b90505b9392505050565b6060824710156113035760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b606482015260840161020a565b843b6113515760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161020a565b600080866001600160a01b0316858760405161136d91906114b8565b60006040518083038185875af1925050503d80600081146113aa576040519150601f19603f3d011682016040523d82523d6000602084013e6113af565b606091505b50915091506113bf8282866113ca565b979650505050505050565b606083156113d957508161129b565b8251156113e95782518084602001fd5b8160405162461bcd60e51b815260040161020a91906114f8565b80356001600160a01b038116811461141a57600080fd5b919050565b60006020828403121561143157600080fd5b61129b82611403565b6000806040838503121561144d57600080fd5b61145683611403565b946020939093013593505050565b60006020828403121561147657600080fd5b8151801515811461129b57600080fd5b60006020828403121561149857600080fd5b5035919050565b6000602082840312156114b157600080fd5b5051919050565b600082516114ca8184602087016115d6565b9190910192915050565b6001600160a01b039384168152919092166020820152604081019190915260600190565b60208152600082518060208401526115178160408501602087016115d6565b601f01601f19169190910160400192915050565b6020808252601a908201527f43616c6c6572206973206e6f742074686520476f7665726e6f72000000000000604082015260600190565b60208082526010908201526f416d6f756e7420746f6f206c6172676560801b604082015260600190565b6020808252600e908201526d1499595b9d1c985b9d0818d85b1b60921b604082015260600190565b6000826115d157634e487b7160e01b600052601260045260246000fd5b500490565b60005b838110156115f15781810151838201526020016115d9565b83811115611600576000848401525b5050505056fe7bea13895fa79d2831e0a9e28edede30099005a50d652d8957cf8a607ee6ca4aa2646970667358221220de5427febdef50e4707714b2e0dfb29a3f79546b9c8b263b0745d60c503c00ee64736f6c63430008070033",
+ "bytecode": "0x6101006040523480156200001257600080fd5b50604051620018ba380380620018ba833981016040819052620000359162000132565b6200004d336000805160206200189a83398151915255565b6000805160206200189a833981519152546040516001600160a01b03909116906000907fc7c0c772add429241571afb3805861fb3cfa2af374534088b76cdb4325a87e9a908290a36001600160a01b038416620000a957600080fd5b6001600160a01b038316620000bd57600080fd5b6001600160a01b038216620000d157600080fd5b6001600160a01b038116620000e557600080fd5b6001600160601b0319606094851b811660805292841b831660a05290831b821660c05290911b1660e0526200018f565b80516001600160a01b03811681146200012d57600080fd5b919050565b600080600080608085870312156200014957600080fd5b620001548562000115565b9350620001646020860162000115565b9250620001746040860162000115565b9150620001846060860162000115565b905092959194509250565b60805160601c60a05160601c60c05160601c60e05160601c61165c6200023e6000396000818161021d015281816107ed0152818161087b0152610d920152600081816108d00152818161095c01528181610b1a0152610c370152600081816102bd015281816104b40152818161070c0152818161079801528181610aad01528181610e3a01526110260152600081816103cb0152818161062b015281816106b701526109d0015261165c6000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c8063bfc11ffd1161008c578063cb93905311610066578063cb93905314610182578063d38bfff414610195578063f3fef3a3146101a8578063f51b0fd4146101bb57600080fd5b8063bfc11ffd14610144578063c6b6816914610157578063c7af33521461016a57600080fd5b80630c340a24146100d457806335aa0b96146100f95780635981c7461461010e5780635d36b19014610121578063853828b6146101295780638a095a0f14610131575b600080fd5b6100dc6101c3565b6040516001600160a01b0390911681526020015b60405180910390f35b61010c610107366004611486565b6101e0565b005b61010c61011c366004611486565b61038a565b61010c6104eb565b61010c610591565b61010c61013f366004611486565b61098a565b61010c610152366004611486565b610ae6565b61010c610165366004611486565b610c03565b610172610d2d565b60405190151581526020016100f0565b61010c610190366004611486565b610d5e565b61010c6101a336600461141f565b610e75565b61010c6101b636600461143a565b610f19565b61010c610fb8565b60006101db6000805160206116078339815191525490565b905090565b69054b40b1f852bda000008111156102135760405162461bcd60e51b815260040161020a90611562565b60405180910390fd5b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166323b872dd333061025364e8d4a51000866115b4565b6040518463ffffffff1660e01b8152600401610271939291906114d4565b600060405180830381600087803b15801561028b57600080fd5b505af115801561029f573d6000803e3d6000fd5b505060405163a9059cbb60e01b8152336004820152602481018490527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316925063a9059cbb91506044015b602060405180830381600087803b15801561030c57600080fd5b505af1158015610320573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103449190611464565b6103875760405162461bcd60e51b815260206004820152601460248201527313d554d1081d1c985b9cd9995c8819985a5b195960621b604482015260640161020a565b50565b69054b40b1f852bda000008111156103b45760405162461bcd60e51b815260040161020a90611562565b6040516323b872dd60e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906323b872dd90610404903390309086906004016114d4565b602060405180830381600087803b15801561041e57600080fd5b505af1158015610432573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104569190611464565b6104985760405162461bcd60e51b8152602060048201526013602482015272111052481d1c985b9cd9995c8819985a5b1959606a1b604482015260640161020a565b60405163a9059cbb60e01b8152336004820152602481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063a9059cbb906044016102f2565b7f44c4d30b2eaad5130ad70c3ba6972730566f3e6359ab83e800d905c61b1c51db546001600160a01b0316336001600160a01b0316146105865760405162461bcd60e51b815260206004820152603060248201527f4f6e6c79207468652070656e64696e6720476f7665726e6f722063616e20636f60448201526f6d706c6574652074686520636c61696d60801b606482015260840161020a565b61058f3361109f565b565b610599610d2d565b6105b55760405162461bcd60e51b815260040161020a9061152b565b7f53bf423e48ed90e97d02ab0ebab13b2a235a6bfbe9c321847d5c175333ac4535805460028114156105f95760405162461bcd60e51b815260040161020a9061158c565b600282556106de6106166000805160206116078339815191525490565b6040516370a0823160e01b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a082319060240160206040518083038186803b15801561067557600080fd5b505afa158015610689573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106ad919061149f565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169190611160565b6107bf6106f76000805160206116078339815191525490565b6040516370a0823160e01b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a082319060240160206040518083038186803b15801561075657600080fd5b505afa15801561076a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061078e919061149f565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169190611160565b6108a26107d86000805160206116078339815191525490565b6040516370a0823160e01b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381600087803b15801561083957600080fd5b505af115801561084d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610871919061149f565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169190611160565b6109836108bb6000805160206116078339815191525490565b6040516370a0823160e01b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a082319060240160206040518083038186803b15801561091a57600080fd5b505afa15801561092e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610952919061149f565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169190611160565b5060019055565b69054b40b1f852bda000008111156109b45760405162461bcd60e51b815260040161020a90611562565b60405163a9059cbb60e01b8152336004820152602481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063a9059cbb90604401602060405180830381600087803b158015610a1c57600080fd5b505af1158015610a30573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a549190611464565b610a965760405162461bcd60e51b8152602060048201526013602482015272111052481d1c985b9cd9995c8819985a5b1959606a1b604482015260640161020a565b6040516323b872dd60e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906323b872dd906102f2903390309086906004016114d4565b69054b40b1f852bda00000811115610b105760405162461bcd60e51b815260040161020a90611562565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166323b872dd3330610b5064e8d4a51000866115b4565b6040518463ffffffff1660e01b8152600401610b6e939291906114d4565b602060405180830381600087803b158015610b8857600080fd5b505af1158015610b9c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bc09190611464565b6104985760405162461bcd60e51b81526020600482015260146024820152731554d110c81d1c985b9cd9995c8819985a5b195960621b604482015260640161020a565b69054b40b1f852bda00000811115610c2d5760405162461bcd60e51b815260040161020a90611562565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663a9059cbb33610c6c64e8d4a51000856115b4565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401602060405180830381600087803b158015610cb257600080fd5b505af1158015610cc6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cea9190611464565b610a965760405162461bcd60e51b81526020600482015260146024820152731554d110c81d1c985b9cd9995c8819985a5b195960621b604482015260640161020a565b6000610d456000805160206116078339815191525490565b6001600160a01b0316336001600160a01b031614905090565b69054b40b1f852bda00000811115610d885760405162461bcd60e51b815260040161020a90611562565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663a9059cbb33610dc764e8d4a51000856115b4565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b158015610e0d57600080fd5b505af1158015610e21573d6000803e3d6000fd5b50506040516323b872dd60e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001692506323b872dd91506102f2903390309086906004016114d4565b610e7d610d2d565b610e995760405162461bcd60e51b815260040161020a9061152b565b610ec1817f44c4d30b2eaad5130ad70c3ba6972730566f3e6359ab83e800d905c61b1c51db55565b806001600160a01b0316610ee16000805160206116078339815191525490565b6001600160a01b03167fa39cc5eb22d0f34d8beaefee8a3f17cc229c1a1d1ef87a5ad47313487b1c4f0d60405160405180910390a350565b610f21610d2d565b610f3d5760405162461bcd60e51b815260040161020a9061152b565b7f53bf423e48ed90e97d02ab0ebab13b2a235a6bfbe9c321847d5c175333ac453580546002811415610f815760405162461bcd60e51b815260040161020a9061158c565b60028255610faf610f9e6000805160206116078339815191525490565b6001600160a01b0386169085611160565b50600190555050565b610fc0610d2d565b610fdc5760405162461bcd60e51b815260040161020a9061152b565b7f53bf423e48ed90e97d02ab0ebab13b2a235a6bfbe9c321847d5c175333ac4535805460028114156110205760405162461bcd60e51b815260040161020a9061158c565b600282557f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f51b0fd46040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561107f57600080fd5b505af1158015611093573d6000803e3d6000fd5b50505050600182555050565b6001600160a01b0381166110f55760405162461bcd60e51b815260206004820152601a60248201527f4e657720476f7665726e6f722069732061646472657373283029000000000000604482015260640161020a565b806001600160a01b03166111156000805160206116078339815191525490565b6001600160a01b03167fc7c0c772add429241571afb3805861fb3cfa2af374534088b76cdb4325a87e9a60405160405180910390a36103878160008051602061160783398151915255565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b1790526111b29084906111b7565b505050565b600061120c826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166112899092919063ffffffff16565b8051909150156111b2578080602001905181019061122a9190611464565b6111b25760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b606482015260840161020a565b606061129884846000856112a2565b90505b9392505050565b6060824710156113035760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b606482015260840161020a565b843b6113515760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161020a565b600080866001600160a01b0316858760405161136d91906114b8565b60006040518083038185875af1925050503d80600081146113aa576040519150601f19603f3d011682016040523d82523d6000602084013e6113af565b606091505b50915091506113bf8282866113ca565b979650505050505050565b606083156113d957508161129b565b8251156113e95782518084602001fd5b8160405162461bcd60e51b815260040161020a91906114f8565b80356001600160a01b038116811461141a57600080fd5b919050565b60006020828403121561143157600080fd5b61129b82611403565b6000806040838503121561144d57600080fd5b61145683611403565b946020939093013593505050565b60006020828403121561147657600080fd5b8151801515811461129b57600080fd5b60006020828403121561149857600080fd5b5035919050565b6000602082840312156114b157600080fd5b5051919050565b600082516114ca8184602087016115d6565b9190910192915050565b6001600160a01b039384168152919092166020820152604081019190915260600190565b60208152600082518060208401526115178160408501602087016115d6565b601f01601f19169190910160400192915050565b6020808252601a908201527f43616c6c6572206973206e6f742074686520476f7665726e6f72000000000000604082015260600190565b60208082526010908201526f416d6f756e7420746f6f206c6172676560801b604082015260600190565b6020808252600e908201526d1499595b9d1c985b9d0818d85b1b60921b604082015260600190565b6000826115d157634e487b7160e01b600052601260045260246000fd5b500490565b60005b838110156115f15781810151838201526020016115d9565b83811115611600576000848401525b5050505056fe7bea13895fa79d2831e0a9e28edede30099005a50d652d8957cf8a607ee6ca4aa264697066735822122060627eb094f2c9ae0acd53bfea289004fac1f1e34602265ad04f748612a2d87c64736f6c634300080700337bea13895fa79d2831e0a9e28edede30099005a50d652d8957cf8a607ee6ca4a",
+ "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100cf5760003560e01c8063bfc11ffd1161008c578063cb93905311610066578063cb93905314610182578063d38bfff414610195578063f3fef3a3146101a8578063f51b0fd4146101bb57600080fd5b8063bfc11ffd14610144578063c6b6816914610157578063c7af33521461016a57600080fd5b80630c340a24146100d457806335aa0b96146100f95780635981c7461461010e5780635d36b19014610121578063853828b6146101295780638a095a0f14610131575b600080fd5b6100dc6101c3565b6040516001600160a01b0390911681526020015b60405180910390f35b61010c610107366004611486565b6101e0565b005b61010c61011c366004611486565b61038a565b61010c6104eb565b61010c610591565b61010c61013f366004611486565b61098a565b61010c610152366004611486565b610ae6565b61010c610165366004611486565b610c03565b610172610d2d565b60405190151581526020016100f0565b61010c610190366004611486565b610d5e565b61010c6101a336600461141f565b610e75565b61010c6101b636600461143a565b610f19565b61010c610fb8565b60006101db6000805160206116078339815191525490565b905090565b69054b40b1f852bda000008111156102135760405162461bcd60e51b815260040161020a90611562565b60405180910390fd5b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166323b872dd333061025364e8d4a51000866115b4565b6040518463ffffffff1660e01b8152600401610271939291906114d4565b600060405180830381600087803b15801561028b57600080fd5b505af115801561029f573d6000803e3d6000fd5b505060405163a9059cbb60e01b8152336004820152602481018490527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316925063a9059cbb91506044015b602060405180830381600087803b15801561030c57600080fd5b505af1158015610320573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103449190611464565b6103875760405162461bcd60e51b815260206004820152601460248201527313d554d1081d1c985b9cd9995c8819985a5b195960621b604482015260640161020a565b50565b69054b40b1f852bda000008111156103b45760405162461bcd60e51b815260040161020a90611562565b6040516323b872dd60e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906323b872dd90610404903390309086906004016114d4565b602060405180830381600087803b15801561041e57600080fd5b505af1158015610432573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104569190611464565b6104985760405162461bcd60e51b8152602060048201526013602482015272111052481d1c985b9cd9995c8819985a5b1959606a1b604482015260640161020a565b60405163a9059cbb60e01b8152336004820152602481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063a9059cbb906044016102f2565b7f44c4d30b2eaad5130ad70c3ba6972730566f3e6359ab83e800d905c61b1c51db546001600160a01b0316336001600160a01b0316146105865760405162461bcd60e51b815260206004820152603060248201527f4f6e6c79207468652070656e64696e6720476f7665726e6f722063616e20636f60448201526f6d706c6574652074686520636c61696d60801b606482015260840161020a565b61058f3361109f565b565b610599610d2d565b6105b55760405162461bcd60e51b815260040161020a9061152b565b7f53bf423e48ed90e97d02ab0ebab13b2a235a6bfbe9c321847d5c175333ac4535805460028114156105f95760405162461bcd60e51b815260040161020a9061158c565b600282556106de6106166000805160206116078339815191525490565b6040516370a0823160e01b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a082319060240160206040518083038186803b15801561067557600080fd5b505afa158015610689573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106ad919061149f565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169190611160565b6107bf6106f76000805160206116078339815191525490565b6040516370a0823160e01b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a082319060240160206040518083038186803b15801561075657600080fd5b505afa15801561076a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061078e919061149f565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169190611160565b6108a26107d86000805160206116078339815191525490565b6040516370a0823160e01b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381600087803b15801561083957600080fd5b505af115801561084d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610871919061149f565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169190611160565b6109836108bb6000805160206116078339815191525490565b6040516370a0823160e01b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a082319060240160206040518083038186803b15801561091a57600080fd5b505afa15801561092e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610952919061149f565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169190611160565b5060019055565b69054b40b1f852bda000008111156109b45760405162461bcd60e51b815260040161020a90611562565b60405163a9059cbb60e01b8152336004820152602481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063a9059cbb90604401602060405180830381600087803b158015610a1c57600080fd5b505af1158015610a30573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a549190611464565b610a965760405162461bcd60e51b8152602060048201526013602482015272111052481d1c985b9cd9995c8819985a5b1959606a1b604482015260640161020a565b6040516323b872dd60e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906323b872dd906102f2903390309086906004016114d4565b69054b40b1f852bda00000811115610b105760405162461bcd60e51b815260040161020a90611562565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166323b872dd3330610b5064e8d4a51000866115b4565b6040518463ffffffff1660e01b8152600401610b6e939291906114d4565b602060405180830381600087803b158015610b8857600080fd5b505af1158015610b9c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bc09190611464565b6104985760405162461bcd60e51b81526020600482015260146024820152731554d110c81d1c985b9cd9995c8819985a5b195960621b604482015260640161020a565b69054b40b1f852bda00000811115610c2d5760405162461bcd60e51b815260040161020a90611562565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663a9059cbb33610c6c64e8d4a51000856115b4565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401602060405180830381600087803b158015610cb257600080fd5b505af1158015610cc6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cea9190611464565b610a965760405162461bcd60e51b81526020600482015260146024820152731554d110c81d1c985b9cd9995c8819985a5b195960621b604482015260640161020a565b6000610d456000805160206116078339815191525490565b6001600160a01b0316336001600160a01b031614905090565b69054b40b1f852bda00000811115610d885760405162461bcd60e51b815260040161020a90611562565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663a9059cbb33610dc764e8d4a51000856115b4565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b158015610e0d57600080fd5b505af1158015610e21573d6000803e3d6000fd5b50506040516323b872dd60e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001692506323b872dd91506102f2903390309086906004016114d4565b610e7d610d2d565b610e995760405162461bcd60e51b815260040161020a9061152b565b610ec1817f44c4d30b2eaad5130ad70c3ba6972730566f3e6359ab83e800d905c61b1c51db55565b806001600160a01b0316610ee16000805160206116078339815191525490565b6001600160a01b03167fa39cc5eb22d0f34d8beaefee8a3f17cc229c1a1d1ef87a5ad47313487b1c4f0d60405160405180910390a350565b610f21610d2d565b610f3d5760405162461bcd60e51b815260040161020a9061152b565b7f53bf423e48ed90e97d02ab0ebab13b2a235a6bfbe9c321847d5c175333ac453580546002811415610f815760405162461bcd60e51b815260040161020a9061158c565b60028255610faf610f9e6000805160206116078339815191525490565b6001600160a01b0386169085611160565b50600190555050565b610fc0610d2d565b610fdc5760405162461bcd60e51b815260040161020a9061152b565b7f53bf423e48ed90e97d02ab0ebab13b2a235a6bfbe9c321847d5c175333ac4535805460028114156110205760405162461bcd60e51b815260040161020a9061158c565b600282557f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f51b0fd46040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561107f57600080fd5b505af1158015611093573d6000803e3d6000fd5b50505050600182555050565b6001600160a01b0381166110f55760405162461bcd60e51b815260206004820152601a60248201527f4e657720476f7665726e6f722069732061646472657373283029000000000000604482015260640161020a565b806001600160a01b03166111156000805160206116078339815191525490565b6001600160a01b03167fc7c0c772add429241571afb3805861fb3cfa2af374534088b76cdb4325a87e9a60405160405180910390a36103878160008051602061160783398151915255565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b1790526111b29084906111b7565b505050565b600061120c826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166112899092919063ffffffff16565b8051909150156111b2578080602001905181019061122a9190611464565b6111b25760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b606482015260840161020a565b606061129884846000856112a2565b90505b9392505050565b6060824710156113035760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b606482015260840161020a565b843b6113515760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161020a565b600080866001600160a01b0316858760405161136d91906114b8565b60006040518083038185875af1925050503d80600081146113aa576040519150601f19603f3d011682016040523d82523d6000602084013e6113af565b606091505b50915091506113bf8282866113ca565b979650505050505050565b606083156113d957508161129b565b8251156113e95782518084602001fd5b8160405162461bcd60e51b815260040161020a91906114f8565b80356001600160a01b038116811461141a57600080fd5b919050565b60006020828403121561143157600080fd5b61129b82611403565b6000806040838503121561144d57600080fd5b61145683611403565b946020939093013593505050565b60006020828403121561147657600080fd5b8151801515811461129b57600080fd5b60006020828403121561149857600080fd5b5035919050565b6000602082840312156114b157600080fd5b5051919050565b600082516114ca8184602087016115d6565b9190910192915050565b6001600160a01b039384168152919092166020820152604081019190915260600190565b60208152600082518060208401526115178160408501602087016115d6565b601f01601f19169190910160400192915050565b6020808252601a908201527f43616c6c6572206973206e6f742074686520476f7665726e6f72000000000000604082015260600190565b60208082526010908201526f416d6f756e7420746f6f206c6172676560801b604082015260600190565b6020808252600e908201526d1499595b9d1c985b9d0818d85b1b60921b604082015260600190565b6000826115d157634e487b7160e01b600052601260045260246000fd5b500490565b60005b838110156115f15781810151838201526020016115d9565b83811115611600576000848401525b5050505056fe7bea13895fa79d2831e0a9e28edede30099005a50d652d8957cf8a607ee6ca4aa264697066735822122060627eb094f2c9ae0acd53bfea289004fac1f1e34602265ad04f748612a2d87c64736f6c63430008070033",
"linkReferences": {},
"deployedLinkReferences": {}
}